sql – 更改Oracle 11gR2的WM_CONCAT函数的分隔符
发布时间:2020-12-12 06:47:25 所属栏目:MsSql教程 来源:网络整理
导读:通常,WM_CONCAT是一个聚合函数,它返回表中用逗号分隔的值,就像这里一样. 假设我有一个像这样的表foo: col_id | col_text111 | This111 | is111 | a111 | test. 如果我使用此查询: SELECT CAST(WM_CONCAT(col_text) AS VARCHAR2(100)),col_id FROM foo 结果
通常,WM_CONCAT是一个聚合函数,它返回表中用逗号分隔的值,就像这里一样.
假设我有一个像这样的表foo: col_id | col_text 111 | This 111 | is 111 | a 111 | test. 如果我使用此查询: SELECT CAST(WM_CONCAT(col_text) AS VARCHAR2(100)),col_id FROM foo 结果将是 This,is,a,test. 是否可以将分隔符(‘,’)更改为其他字符,如’.’或’|’ WM_CONCAT()函数? 或者创建一个可以像WM_CONCAT()那样执行的用户定义函数? 解决方法您可能想要使用LISTAGG .
SELECT col_id,LISTAGG(col_text,'|') WITHIN GROUP (ORDER BY col_text) text FROM table1 GROUP BY col_id 输出: | COL_ID | TEXT | ---------------------------- | 111 | This|a|is|test. | SQLFiddle 更新如果您需要在列表中获取不同的文本值 SELECT col_id,'|') WITHIN GROUP (ORDER BY col_text) text FROM ( SELECT DISTINCT col_id,col_text FROM table1 ) GROUP BY col_id SQLFiddle (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读