Oracle多行转一行:wmsys.wm_concat、sys_connect_by_path、自定义函数实现行列转换

http://www.cnblogs.com/zzcong/archive/2012/10/16/2726528.html

 


 

 

Oracle SQL使用wmsys.wm_concat()語法,
雖然已經多行轉成一行,但是字與字之間有空白產生。

EX:
  原先:Test
  轉換:T e s t
 
該欄位透過 to_char() 轉換後恢復正常,原因不太清楚...

EX:
  原先:Test
  轉換:Test
 

 

延伸狀況:

Oracle 11G R2的新功能

[ORACLE] LISTAGG函數之應用
http://sqlqna.blogspot.tw/2013/11/LISTAGG.html

範例:
LISTAGG(to_char(欄位代碼),'分隔符號') WITHIN GROUP (ORDER BY 排列順序) AS 新欄位名稱
 > 須搭配Group by使用。

 


 

非SQL問題:

發現部分軟體讀取該欄位並轉成CSV後,欄位中都會有一個異常的換行符號。

解決方式:於資料外層加入to_char(),可以將前方異常的換行符號去除

 > to_char((select WMSYS.WM_CONCAT(TO_CHAR(TRIM(欄位))) from dual

 

arrow
arrow
    全站熱搜

    Nathan 發表在 痞客邦 留言(0) 人氣()