array_sort
函数
适用于: Databricks SQL Databricks Runtime
返回根据 func
排序的 array
。
语法
array_sort(array, func)
参数
array
:计算结果为数组的表达式。func
:用于定义排序顺序的 lambda 函数。
返回
结果类型与 array
的类型匹配。
如果省略 func
,则数组按升序排序。
如果提供 func
,则采用两个参数(代表数组的两个元素)。
该函数必须返回 -1、0 或 1,具体取决于第一个元素是小于、等于还是大于第二个元素。
如果 func
返回其他值(包括 NULL),array_sort
将会失败并引发错误。
NULL 元素放在返回的数组的末尾。
示例
> 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]