array_sort

array_sort

array_sort介绍

array_sort(expr, func) - 对输入数组进行排序。如果省略了 func,则默认按升序排序。输入数组的元素必须是可排序的。对于双精度/浮点类型,NaN 大于任何非 NaN 元素。空元素将被放置在返回数组的末尾。自 3.0.0 版本起,该函数还根据给定的比较器函数对数组进行排序并返回排序后的数组。比较器将接受两个参数,代表数组中的两个元素。它返回一个负整数、0 或正整数,分别表示第一个元素小于、等于或大于第二个元素。如果比较器函数返回 null,则函数将失败并引发错误。

Examples:

> SELECT array_sort(array(5, 6, 1), (left, right) -> case when left < right then -1 when left > right then 1 else 0 end);
 [1,5,6]
> SELECT array_sort(array('bc', 'ab', 'dc'), (left, right) -> case when left is null and right is null then 0 when left is null then -1 when right is null then 1 when left < right then 1 when left > right then -1 else 0 end);
 ["dc","bc","ab"]
> SELECT array_sort(array('b', 'd', null, 'c', 'a'));
 ["a","b","c","d",null]

Since: 2.4.0