

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# ARRAY\$1SORT 函数
<a name="array_sort"></a>

按升序或降序创建输入数组的排序版本。您可以指定 NULL 值应在结果中出现的位置。该函数是 NULL 安全的，这意味着它将 NULL 视为已知对象。

## 语法
<a name="array_sort-syntax"></a>

```
ARRAY_SORT( array [, sort_ascending [, nulls_first]] )
```

## 参数
<a name="array_sort-arguments"></a>

 *array*   
一个 SUPER 表达式，用于指定要排序的数组。

 *sort\$1ascending*   
一个布尔值，用于指定是按升序还是降序对数组进行排序：  
+ 指定 TRUE 可按升序对元素进行排序。
+ 指定 FALSE 可按降序对元素进行排序。
默认值为 TRUE。

 *nulls\$1first*   
一个用于指定 NULL 定位的布尔值：  
+ 指定 TRUE 可将 NULL 放在已排序数组的开头。
+ 指定 FALSE 可将 NULL 放在已排序数组的末尾。

## 返回类型
<a name="array_sort-return-type"></a>

ARRAY\$1SORT 函数返回 SUPER 类型。

## 注意
<a name="array_sort-note"></a>

当对包含混合数据类型的数组进行排序时，将根据以下类型优先顺序对元素进行排序：
+ 布尔值
+ 数字值
+ 字符串值
+ 数组
+ 对象/词典

在每个类型类别中，元素根据其自然顺序进行排序（例如，数字按数值大小排序，字符串按字母顺序排序）。

## 示例
<a name="array_sort-example"></a>

以下示例显示 ARRAY\$1SORT 函数。

```
-- Ascending order (default)
SELECT ARRAY_SORT(ARRAY('b', 'a', 0, NULL, 1, false));
        array_sort        
--------------------------
 [false,0,1,"a","b",null]
(1 row)

-- Descending order
SELECT ARRAY_SORT(ARRAY('b', 'a', 0, NULL, 1, false), False);
        array_sort        
--------------------------
 [null,"b","a",1,0,false]
(1 row)

-- Descending order with NULLs at the end of the sorted array
SELECT ARRAY_SORT(ARRAY('b', 'a', 0, NULL, 1, false), False, False);
        array_sort        
--------------------------
 ["b","a",1,0,false,null]
(1 row)
```

## 另请参阅
<a name="array_sort-see-also"></a>
+ [ARRAY\$1DISTINCT 函数](array_distinct.md)
+ [ARRAY\$1FLATTEN 函数](array_flatten.md)
+ [SUBARRAY 函数](r_subarray.md)