oracle - 如何在 listagg 中使用 chr(10)?
问题描述
我需要在 listagg 中插入一个 char(10),但它没有按预期工作。
这是我写的脚本:
select ID, listagg(value , ';')within group (order by ID) as "value"
from DTA
group by ID
Current Result
ID |value |
----|-----------|
1 |aaa;bbb;ccc|
2 |abc |
3 |abe |
Desired Result
ID |value
----|------
1 |aaa
|bbb
|ccc
----|------
2 |abc
----|------
3 |abe
我尝试使用它,但它没有按预期工作。
select ID, listagg(value , chr(10))within group (order by ID) as "value"
from DTA
group by ID
如何改进我的脚本?
解决方案
你的代码是正确的。您需要一个能够显示换行符的工具:
WITH DTA AS (
SELECT 1 AS ID, 'A' AS Value FROM dual
UNION ALL
SELECT 1 AS ID, 'B' FROM dual
)
select ID, listagg(value , chr(10))within group (order by ID) as "value"
from DTA
group by ID;
输出:
ID value
1 A
B
推荐阅读
- c - 未执行循环裂变/不变优化,为什么?
- amazon-web-services - 适用于非常小的应用程序的最便宜的数据库即服务
- jquery - 来自struts 2 Action类的响应在ajax成功时为空
- html - 在 ReactJS 中为一个组件设置不同的背景图像
- c# - C# EPPlus 获取公式单元格的值
- r - 使用 R 将 XML 的特定节点转换为 CSV
- node.js - 我在启动 npm 时遇到了这个问题:npm ERR!代码生命周期
- java - 如何使用 Java11 解决“com.sun.crypto.provider.SunJCE 类型不可访问”?
- python - 如何将日期更改为数据时间类型
- github - 关于 GitHub 操作 / GitHub 拉取请求的 HTML 报告