oracle函式listagg的使用說明

2021-09-13 14:04:56 字數 754 閱讀 8810

工作中經常遇到很多需求是這樣的,根據條件彙總某些字段,比如我遇到的是,我們公司有三個投資平台,同乙個客戶拿手機號在三個平台都註冊了,但註冊過的使用者名稱不一樣,顯示的時候需要根據手機號顯示所有註冊過的名稱。(我用的是oracle資料庫)

1、原始資料是這樣的,如圖:

2、要求顯示成這樣,如圖:

我查了一下oracle函式,這個listagg函式就可以滿足它,在網上看了看,都是介紹listagg這個函式的使用方法,看起來真費勁,於是在這裡我簡明扼要的說明一下

3、具體實現是這樣的,也就不廢話,看完例子都能懂:

select phone, listagg(log_name, ',') within group(order by phone) logname

from int_phone

where phone = '13350162230'

group by phone

4、需要注意的事項如下:

(1). 必須得分組,也就是說group  by是必須的。

(2). listagg函式的第乙個引數是需要顯示的字段,也就是log_name;第二個引數是數值之間的分隔符;同時還需要進行排序和分組within group (order by name)

Oracle行專列函式Listagg

oracle行專列函式listagg 這是乙個oracle的行轉列函式 listagg www.2cto.com 先看示例 sql with temp as select china nation guangzhou city from dual union all select china nat...

Oracle行專列函式Listagg

oracle行專列函式listagg 這是乙個oracle的行轉列函式 listagg www.2cto.com 先看示例 sql with temp as select china nation guangzhou city from dual union all select china nat...

關於oracle函式listagg的使用說明

工作中經常遇到客戶提出這樣的需求,希望在彙總合併中,能夠把日期逐個列舉出來。如圖,原始資料是這樣的 客戶希望能夠實現這樣的彙總合併 那麼通常我會使用listagg這個函式,但是好多網上都是系統的全面的介紹listagg這個函式的使用方法,看起來很費力氣。在這裡我簡明扼要的說明一下 實現這個需求的語句...