eldenmoon commented on code in PR #2845: URL: https://github.com/apache/doris-website/pull/2845#discussion_r2324285639
########## i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/array-functions/array-remove.md: ########## @@ -5,37 +5,39 @@ } --- -## 描述 +## 功能 -移除数组中所有的指定元素 +从数组中移除与给定值相等的所有元素,保留其余元素的相对顺序。 ## 语法 -```sql -ARRAY_REMOVE(<arr>, <val>) -``` +- `ARRAY_REMOVE(arr, target)` ## 参数 -| 参数 | 说明 | -|--|--| -| `<arr>` | 对应数组 | -| `<val>` | 指定元素 | +- `arr`:`ARRAY<T>`,支持数值、布尔、字符串、日期时间、IP 等。 +- `target`:与数组元素类型一致的值,用于匹配需要移除的元素。 ## 返回值 -返回移除所有的指定元素后的数组,如果输入参数为 NULL,则返回 NULL +- 返回与输入同类型的 `ARRAY<T>`。 +- 若 `arr` 或 `target` 为 `NULL`,返回 `NULL`。 -## 举例 +## 使用说明 + +- 匹配规则:仅移除与 `target` 值相等的元素;`NULL` 元素不会与任何非 `NULL` 值相等,因此不会被移除。 + +## 示例 + +- 基本: 移除后的数组,保留了之前的相对顺序。 + - `ARRAY_REMOVE([1,2,3], 1)` -> `[2,3]` + - `ARRAY_REMOVE([1,2,3,null], 1)` -> `[2,3,null]` + +- `arr` 或 `target` 为 `NULL`,返回 `NULL` + - `ARRAY_REMOVE(['a','b','c',NULL], NULL)` -> `NULL` + - `ARRAY_REMOVE(NULL, 2)` -> `NULL` Review Comment: 应该跟array_contains或者arrays_overlap一样做到null safe ########## i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/array-functions/array-sortby.md: ########## @@ -5,87 +5,44 @@ } --- -## 描述 +## 功能 -首先将 key 列升序排列,然后将 src 列按此顺序排序后的对应列做为结果返回; -如果输入数组 src 为 NULL,则返回 NULL。 -如果输入数组 key 为 NULL,则直接返回 src 数组。 -如果输入数组 key 元素包含 NULL, 则输出的排序数组会将 NULL 放在最前面。 +依据 `key数组`的顺序对 `value数组`进行排序。 +- 例如 `key数组` 是 `[3, 0, 2]`, `value数组` 是 `[5, 7, 8]`,排序后的 `key数组` 是 `[0, 2, 3]`,对应的 `value数组` 是 `[7, 8, 5]`。 ## 语法 -```sql -ARRAY_SORTBY(<src>, <key>) -ARRAY_SORTBY(<lambda>, <arr> [, ...]) -``` +- `ARRAY_SORTBY(values, keys)` +- `ARRAY_SORTBY(lambda, values)` +- `ARRAY_SORTBY(lambda, values)` 相当于 `ARRAY_SORTBY(values, ARRAY_MAP(lambda, values))` ## 参数 -| 参数 | 说明 | -| --- |---| -| `<lambda>` | lambda 表达式,表达式中输入的参数为 1 个或多个,必须和后面的输入 array 列数量一致。在 lambda 中可以执行合法的标量函数,不支持聚合函数等。 | -| `<arr>` | ARRAY 数组 | +- `values`:`ARRAY<T>`,要排序的 value 数组,`T`只支持:数值,布尔,字符串,时间日期,IP 等类型。 +- `keys`:`ARRAY<T>`,与 `arr` 等长的 key 数组,`T`只支持:数值,布尔,字符串,时间日期,IP 等类型。 +- `lambda`: `lambda` 表达式作用于 `values`, 产生 `key 数组`,利用产生的 `key 数组` 进行排序。 ## 返回值 -返回一个排序后的 ARRAY 类型的结果 +- 返回与 `values` 同类型的 `ARRAY<T>`。 +- 当某行 `arr` 与 `keys` 的元素个数不等时报错。 -## 举例 +## 使用说明 -```sql -select array_sortby(['a','b','c'],[3,2,1]); -``` +- 排序稳定性:以`keys`的升序重排 `values`,`keys`中相等键的相对次序未定义。 +- 高阶调用会先用 `ARRAY_MAP` 计算`keys`,再按`keys`对 `values` 排序。 Review Comment: keys,values为NULL是什么行为可以在这里提一下 ########## i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/array-functions/countequal.md: ########## @@ -5,37 +5,40 @@ } --- -## 描述 +## 功能 -判断数组中包含 value 元素的个数 +统计数组中与指定目标值相等的元素个数。 ## 语法 -```sql -COUNTEQUAL(<arr>, <value>) -``` +- `COUNTEQUAL(arr, target)` ## 参数 -| 参数 | 说明 | -|--|------| -| `<arr>` | 输入数组 | -| `<value>` | 判断元素 | +- `arr`:`ARRAY<T>`,支持的元素类型包括:数值、布尔、字符串、日期时间、IP。 +- `target`:与 `arr` 元素类型一致。 ## 返回值 -返回判断的结果如下:num:value 在 array 中的数量;0:value 不存在数组 arr 中;NULL:如果数组为 NULL。 +- 返回 `BIGINT`,表示相等的元素个数。 -## 举例 +## 使用说明 + +- 两端都是 `NULL` 视为相等,会被计数。 Review Comment: 两端都是NULL返回什么,来个示例 ########## i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/array-functions/array-sort.md: ########## @@ -5,36 +5,35 @@ } --- -## 描述 +## 功能 -将数组中的元素升序排列 +对数组元素按升序排序。 ## 语法 -```sql -ARRAY_SORT(<arr>) -``` +- `ARRAY_SORT(arr)` ## 参数 -| 参数 | 说明 | -|--|--| -| `<arr>` | 对应数组 | +- `arr`:`ARRAY<T>`,`T` 可为数值、布尔、字符串、日期时间、IP 等。 ## 返回值 -返回按升序排列后的数组,如果输入数组为 NULL,则返回 NULL。如果数组元素包含 NULL, 则输出的排序数组会将 NULL 放在最前面。 +- 返回与输入同类型的 `ARRAY<T>`。 +- `NULL` 元素放在返回的数组最前面。 -## 举例 +## 使用说明 + +- 若输入为 `NULL`,返回 `NULL`; 若输入为空数组 `[]`,返回空数组。 +- `ARRAY_SORT` 是升序排序,`ARRAY_REVERSE_SORT` 是降序排序。 + +## 示例 + +- 基本: `NULL` 元素放在返回的数组最后面 + - `ARRAY_SORT([2,1,3,null])` -> `[null, 1, 2, 3]` Review Comment: 看结果null是最前面? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
