函數listagg的使用說明

工做中常常遇到不少需求是這樣的,根據條件彙總某些字段,好比我遇到的是,咱們公司有三個投資平臺,同一個客戶拿手機號在三個平臺都註冊了,但註冊過的用戶名不同,顯示的時候須要根據手機號顯示全部註冊過的名稱。(我用的是Oracle數據庫)mysql

一、原始數據是這樣的,如圖:sql

二、要求顯示成這樣,如圖:數據庫

我查了一下oracle函數,這個listagg函數就能夠知足它,在網上看了看,都是介紹listagg這個函數的使用方法,看起來真費勁,因而在這裏我簡明扼要的說明一下oracle

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

select phone, listagg(log_name, ',') within group(order by phone) logName
  from int_phone
 where phone = '13350162230'
 group by phone.net

四、須要注意的事項以下:
    (1). 必須得分組,也就是說group  by是必須的。
    (2). listagg函數的第一個參數是須要顯示的字段,也就是log_name;第二個參數是數值之間的分隔符;同時還須要進行排序和分組within group (order by name)排序

相關文章
相關標籤/搜索