1. WM_CONCAT
示例:
SELECT 欄位1 ,WM_CONCAT(欄位2) FROM 表 GROUP BY 欄位1
說明:欄位2沒有排序功能,還有就是只能使用逗號進行分割,不能使用其他自定義的分隔符進行分割
2. LISTAGG
示例:
SELECT 欄位1 ,LISTAGG(欄位2, ',') WITHIN GROUP (ORDER BY 欄位1, 欄位2) FROM 表 GROUP BY 欄位1
說明:欄位2可以按要求進行排序,如果不需要排序則在ORDER BY陳述句中將欄位2去除即可,還能自定義分隔符,缺點就是拼接字符不能超過VARCHAR2的最大長度
3. XMLAGG
示例:
SELECT 欄位1 ,RTRIM(XMLAGG(XMLPARSE(CONTENT 欄位2 || ',' WELLFORMED) ORDER BY 欄位1, 欄位2).GETCLOBVAL(), ',')
FROM 表 GROUP BY 欄位1
說明:在拼接欄位時可能超過VARCHAR2的最大長度時使用,拼接的欄位CLOB
以上3種方法中:
方法1好像效率較低,12C版本中好像已經被洗掉掉了,
所以如果使用的版本的是12C以前的,并且資料量不是很大,不考慮效率的時候,可以考慮使用第一種方法,
如果考慮效率的話,優先選用第二種方法,如果拼接出的字串可能會過大時請選擇第三種方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/549095.html
標籤:其他
上一篇:SQLServer AlwaysOn 詳細搭建教程 & Windows故障轉移群集
下一篇:mysql總結