長話短說,oracle中的LISTAGG() WITHIN GROUP ()把一列的值合併爲一個值,用指定的分隔符隔開,根據條件彙總某些列上的字段,就是根據某些指定的條件,把該列的字段,彙總在行的一個字段裏,行轉列函數;
需要注意的事項如下:
(1)group by是必須的,必須得分組。
(2)listagg函數的第一個參數是需要顯示的字段;第二個參數是數值之間的分隔符;同時還需要進行排序和分組within group (order by 字段名)
舉例說明:
select * from userinfo
把上面name的列上的所有值合併在一行一列表示:
select listagg(name, ',') within group( order by name) as name from userinfo