Oracle:选择CSV格式的项目?

时间:2012-01-10 01:54:24

标签: sql oracle csv

假设我有一个查询

select name from tbl where dept = 123

返回像这样的数据集

bob
carol
steve

是否存在一种本地表达(在sql中,或者可能是一个过程?)一种查询的方法,该查询将数据作为CSV或空格分隔列表返回?

bob,carol,steve

1 个答案:

答案 0 :(得分: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,则还有许多其他方法具有各种优点和缺点。蒂姆对各种方法的比较非常完整。