- 类别:
:doc:`/sql-reference/functions-semistructured`(数组/对象)
ARRAY_SORT¶
返回一个 ARRAY,包含按升序或降序排序的输入 ARRAY 的元素。您可以指定 NULL 元素是在非 NULL 元素之前还是之后排序。
语法¶
实参¶
必填
array要排序的元素 ARRAY。
可选
sort_ascending指定是按升序还是降序对元素进行排序:
指定 TRUE 以升序对元素进行排序。
指定 FALSE 以降序对元素进行排序。
默认:TRUE
nulls_first指定是将 SQL NULL 元素放在排序 ARRAY 的开头还是结尾:
指定 TRUE 将 SQL NULL 元素放在 ARRAY 的第一位。
指定 FALSE 将 SQL NULL 元素放在 ARRAY 的最后。
默认值:如果 ARRAY 按升序排序,则为 FALSE;如果 ARRAY 按降序排序,则为 TRUE。
此实参仅影响 SQL NULL 元素的顺序。这不会影响 JSON null 元素的顺序。
返回¶
此函数返回一个 ARRAY,其中包含按排序顺序排列的 array 元素。
使用说明¶
示例¶
以下示例返回一个数字 ARRAY,其中输入 ARRAY 常数 中的元素按升序排序。这些元素包括一个 JSON NULL (PARSE_JSON('null')) 和一个 SQL NULL。
请注意,在排序 ARRAY 中,JSON NULLs (null) 和 SQL NULLs (undefined) 是最后的元素。
以下示例返回一个数字 ARRAY,其中的元素按降序排序。请注意,在排序 ARRAY 中,JSON NULLs (null) 和 SQL NULLs (undefined) 是前面的元素。
以下示例按升序对元素进行排序。该示例将 nulls_first 实参设置为 TRUE,以将 SQL NULLs (undefined) 放在排序 ARRAY 的第一位。(默认情况下,SQL NULLs 放在按升序排序的 ARRAY 的末尾。)
请注意,nulls_first 对 JSON NULLs (null) 的放置没有影响。
以下示例按降序对元素进行排序。该示例将 nulls_first 实参设置为 FALSE,以将 SQL NULLs (undefined) 放在排序 ARRAY 的最后。(默认情况下,SQL NULLs 放在按降序排序的 ARRAY 的开头。)
请注意,nulls_first 对 JSON NULLs (null) 的放置没有影响。
以下示例使用 ARRAY_INSERT 函数构造一个稀疏填充的 ARRAY。(该示例在 ARRAY 中的特定位置插入值 1 和 2。)该示例随后使用 ARRAY_SORT 函数对此 ARRAY 进行排序。
以下示例演示了对不同数值类型的 ARRAY 进行排序会导致不稳定的排序。该示例使用包含 NUMBER 值和 REAL 值的 ARRAY。