Oracle數據庫多行記錄轉換一行並排序方法
在ORACLE數據庫查詢中,我們通常會要求用到將多行記錄轉換成一行並排序,這時候我們自然會想到Oracle的一個“wx_concat”函數,可以將多行記錄轉換成一行並排序,下面我們來使用Oracle數據庫測試一下結果及效果,做一個簡單的創建表和查詢表如下圖:
插入並查詢表數據:
下面我們使用wm_concat函數進行合並行並排序如下圖所示:
編號為1的數據合並后:
可以看出沒有問題都是按照順序進行排序,下面看下編號為2的數據合並后的結果:
從編號2可以看出,wm_concat函數能夠合並行數據並且排序但是排序后的順序是不規則的,不管怎么排序都是不規則,在這里就有點苦惱。。下面介紹一下另外一種oracle合並行並自定義排序方式---listagg() within()..函數
不多說直接先看效果圖:
使用listagg() within()..函數 可以有效地將相關聯的表數據進行合並行並且實現排序,在某些業務過程中,顯示給客戶或者用戶看的效果就需要使用到listagg() within()..函數來充分體現某些效果。