对ARRAY数组中的元素进行排序。

命令格式

array<T> sort_array(array<T> <a>[, <isasc>])

参数说明

  • a:必填。ARRAY数组。array<T>中的T指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。

  • isasc:可选。用于设置排序规则。取值为True(升序)或False(降序)。默认为升序。

返回值说明

返回ARRAY类型。NULL值为最小值。

使用示例

  • 示例1:例如表t_array的字段为c1 array<string>,c2 array<int> ,c3 array<string>,包含数据如下:

    +------------+---------+--------------+
    | c1         | c2      | c3           |
    +------------+---------+--------------+
    | [a, c, f, b]  | [4, 5, 7, 2, 5, 8]  |  [你, 我, 他] |
    +------------+---------+--------------+

    对表的每列数据进行排序。命令示例如下。

    --返回[a, b, c, f] [2, 4, 5, 5, 7, 8] [他, 你, 我]。
    select sort_array(c1),sort_array(c2),sort_array(c3) from t_array;
  • 示例2:对ARRAY数组array(10, 20, 40, 30, 30, null, 50)进行降序排序。命令示例如下。

    --返回[50, 40, 30, 30, 20, 10, NULL]。
    select sort_array(array(10, 20, 40, 30, 30, null, 50), false);

相关函数

SORT_ARRAY函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数