array_sort_asc()

接收一个或多个数组。 按升序对第一个数组进行排序。 对其余数组进行排序,以匹配重新排序的第一个数组。

语法

array_sort_asc(array1[, ..., argumentN])

array_sort_asc(array1[, ..., argumentN],nulls_last)

如果未提供 nulls_last,则使用默认值 true

参数

名称 类型 必选 说明
array1...arrayN 输入数组。
nulls_last bool 指示 null 是否应位于最后。

返回

返回相同数量(与输入相比)的数组,第一个数组按升序排序,其余数组在排序后与重新排序的第一个数组匹配。

对于长度不同于第一个数组的每个数组,将会返回 null

如果数组包含不同类型的元素,则按以下顺序对其排序:

  • 数值、datetimetimespan 元素
  • 字符串元素
  • GUID 元素
  • 所有其他元素

示例 1 - 对两个数组排序

[单击以运行查询]

let array1 = dynamic([1,3,4,5,2]);
let array2 = dynamic(["a","b","c","d","e"]);
print array_sort_asc(array1,array2)

结果

array1_sorted array2_sorted
[1,2,3,4,5] ["a","e","b","c","d"]

注意

输出列名称根据函数的参数自动生成。 若要为输出列分配不同的名称,请使用以下语法:... | extend (out1, out2) = array_sort_asc(array1,array2)

示例 2 - 对子字符串排序

[单击以运行查询]

let Names = "John,Paul,George,Ringo";
let SortedNames = strcat_array(array_sort_asc(split(Names, ",")), ",");
print result = SortedNames

结果

result
George,John,Paul,Ringo

示例 3 - 合并 summarize 和 array_sort_asc

[单击以运行查询]

datatable(command:string, command_time:datetime, user_id:string)
[
    'chmod',   datetime(2019-07-15),   "user1",
    'ls',      datetime(2019-07-02),   "user1",
    'dir',     datetime(2019-07-22),   "user1",
    'mkdir',   datetime(2019-07-14),   "user1",
    'rm',      datetime(2019-07-27),   "user1",
    'pwd',     datetime(2019-07-25),   "user1",
    'rm',      datetime(2019-07-23),   "user2",
    'pwd',     datetime(2019-07-25),   "user2",
]
| summarize timestamps = make_list(command_time), commands = make_list(command) by user_id
| project user_id, commands_in_chronological_order = array_sort_asc(timestamps, commands)[1]

结果

user_id commands_in_chronological_order
user1 [
"ls",
"mkdir",
"chmod",
"dir",
"pwd",
"rm"
]
user2 [
"rm",
"pwd"
]

注意

如果数据可能包含 null 值,请使用 make_list_with_nulls,而不是 make_list

示例 4 - 控制 null 值的位置

默认情况下,null 值放在已排序数组的最后。 但是,你可以显式控制它,方法是将 bool 值添加为 array_sort_asc() 的最后一个参数。

具有默认行为的示例:

[单击以运行查询]

print array_sort_asc(dynamic([null,"blue","yellow","green",null]))

结果

print_0
["blue","green","yellow",null,null]

具有非默认行为的示例:

[单击以运行查询]

print array_sort_asc(dynamic([null,"blue","yellow","green",null]), false)

结果

print_0
[null,null,"blue","green","yellow"]

请参阅

若要按降序对第一个数组排序,请使用 array_sort_desc()