1. 程式人生 > >oracle listagg() 函式用法(參照例子)

oracle listagg() 函式用法(參照例子)

工作中經常遇到很多需求是這樣的,根據條件彙總某些欄位,比如公司有三個投資平臺,同一個客戶拿手機號在三個平臺都註冊了,但註冊過的使用者名稱不一樣,顯示的時候需要根據手機號顯示所有註冊過的名稱。(我用的是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)