2012-01-10 37 views
3

假設我有一個查詢Oracle:選擇CSV格式的項目?

select name from tbl where dept = 123 

返回一個數據集,這樣

bob 
carol 
steve 

是否存在的天然表達的方式(在SQL中,或者一個過程?)查詢將返回數據作爲一個CSV或空格分隔列表?

bob,carol,steve 
+1

你好幾年前曾問過類似的問題:) [Oracle:歸一化字段爲CSV字符串](http://stackoverflow.com/q/1441971) – Sathya 2012-01-10 04:28:01

回答

7

什麼版本的Oracle?

Tim Hall有一個頁面描述各種string aggregation techniques in Oracle。如果您使用的是Oracle 11.2,最簡單的方法是

SELECT listagg(name, ',') within group(order by name) 
    FROM table_name 
WHERE dept = 123 

如果使用的是Oracle的早期版本,有各種優點和缺點很多其他的方法。蒂姆對各種方法的比較非常完整。