【oracle開發】wmsys.wm_concat介紹


wmsys.wm_concat是一個聚合函數,其作用是將一列數據轉換成一行,也就是我們常用的行專列,但是該函數是一個undocument函數,所以不推薦大家使用這個函數。因為在后續的版本中還提不提供這個函數都不好說呢。

首先創建臨時表和測試數據

使用該函數,可以看到我們的按id做group by,把name字段列轉置為一行

但是我們使用wmconcat還是會遇到這么兩個問題:1.vm_concat函數是無序的。2.遇到ora-22922的錯誤。

通過我們第二步可以看到name字段在列轉行后沒有按照順序排列的

這種情況我們可以使用窗口函數來解決無序的問題呢,如下圖所示

另一種情況是會遇到ora-22922的報錯,如下圖所示。這種情況一般發生在內層使用to_char這樣的函數,外層在去查詢這列就報錯。

解決方案是將to_char這類的函數放到最外面執行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM