2012-02-01 61 views
8

可能重複:
How can I combine multiple rows into a comma-delimited list in Oracle?變換SQL行到逗號分隔值在甲骨文

你怎麼能生產出從SQL返回的行列表中的逗號分隔值,而無需創建功能?需要刪除重複項,並將null或'None'作爲值。

實施例:select name from student;

其結果是:

  NAME   
     ------ 
     Zed 
     Charlo 
     None 
     Charlo 
     Dionn 
     Ansay 

希望的輸出:

   Name 
      ------- 
      Zed,Charlo,Dionn,Ansay 
+1

是這不是一個重複數據刪除我會感到驚訝。 – 2012-02-01 02:15:58

+0

第一次打擊:http://stackoverflow.com/questions/468990/how-can-i-combine-multiple-rows-into-a-comma-delimited-list-in-oracle – 2012-02-01 02:16:26

+0

順便說一句:如果你有任何Oracle問題,在「Tom Kyte」前添加您的互聯網搜索 – 2012-02-01 02:23:12

回答

20

http://sqlfiddle.com/#!4/9ad65/2

select 
    listagg(name, ',') 
    within group (order by id) as list 
from student 
+4

完全披露:sqlfiddle.com是我的網站。 – 2012-02-01 02:46:40

+0

@JakeFeasel SQL小提琴看起來很整潔! – Sathya 2012-02-01 04:39:33

+1

@Sathya謝謝,我希望這裏的人們發現它是回答這類問題的有用工具。 – 2012-02-01 05:01:10