WM_CONCAT
📄字数 598
👁️阅读量 加载中...
功能描述
将同一个分组中的非 NULL
值,以逗号为分隔符,拼接起来,返回拼接后的字符串。
语法格式
sql
WM_CONCAT(expr)
[OVER([analytic_clause])]
输入参数
expr
:被连接的列,VARCHAR
类型,或能隐式转换为VARCHAR
类型的其他类型。analytic_clause
:可选的分析子句,支持分组子句,排序子句以及范围子句,分析子句的详细说明请参考 analytic_clause。
输出结果
返回 VARCHAR
类型,输入参数为 NULL
时,输出结果为 NULL
。
提示
WM_CONCAT()
函数的结果允许的最大记录长度为:60000
字节。
示例
sql
SQL> CREATE TABLE tab_test_wm_concat(a INTEGER,b VARCHAR(20));
SQL> INSERT INTO tab_test_wm_concat VALUES(1, 'test1')(2, 'test2')(3, 'test3');
SQL> INSERT INTO tab_test_wm_concat VALUES(1, '张三')(2, '李四')(3, '小王');
SQL> SELECT a, WM_CONCAT(b) FROM tab_test_wm_concat GROUP BY a;
+---+------------+
| A | EXPR1 |
+---+------------+
| 1 | test1,张三 |
| 2 | test2,李四 |
| 3 | test3,小王 |
+---+------------+
SQL> SELECT a, WM_CONCAT(b) OVER(PARTITION BY a ORDER BY b DESC) FROM tab_test_wm_concat;
+---+------------+
| A | EXPR1 |
+---+------------+
| 1 | 张三 |
| 1 | 张三,test1 |
| 2 | 李四 |
| 2 | 李四,test2 |
| 3 | 小王 |
| 3 | 小王,test3 |
+---+------------+