对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数据)的处理函数请参见复杂类型函数。