假设我有一个查询
select name from tbl where dept = 123
返回像这样的数据集
bob
carol
steve
是否存在一种本地表达(在sql中,或者可能是一个过程?)一种查询的方法,该查询将数据作为CSV或空格分隔列表返回?
bob,carol,steve
答案 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,则还有许多其他方法具有各种优点和缺点。蒂姆对各种方法的比较非常完整。