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

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

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)
