假设我有一个查询
select name from tbl where dept = 123
Run Code Online (Sandbox Code Playgroud)
它返回一个这样的数据集
bob
carol
steve
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以本地表达(在sql中,或者可能是一个过程?)一个查询,它将数据作为CSV或空格分隔列表返回?
bob,carol,steve
Run Code Online (Sandbox Code Playgroud)
什么版本的Oracle?
Tim Hall有一个描述Oracle中各种字符串聚合技术的页面.如果您使用的是Oracle 11.2,那么最简单的选择就是
SELECT listagg(name, ',') within group( order by name)
FROM table_name
WHERE dept = 123
Run Code Online (Sandbox Code Playgroud)
如果您使用的是早期版本的Oracle,则还有许多其他方法具有各种优点和缺点.蒂姆对各种方法的比较非常完整.
| 归档时间: |
|
| 查看次数: |
2437 次 |
| 最近记录: |