sql - PostgreSQL:将行输出为逗号分隔的字符串列表
问题描述
在 PostgreSQL 11 上,我想将表的行输出为以逗号分隔的字符串列表:
id,info,name,message
我尝试了以下查询:
SELECT array_to_string(array_agg(t), ',', '')
FROM (
SELECT id, info, name, message
FROM myschema.mytable
) t;
但这输出:
(1,foo,bar,baz),(2,qux,zap,xen)
相反,所需的结果应如下所示:
1,foo,bar,baz
2,qux,zap,xen
什么是正确的查询?
解决方案
你似乎想要:
SELECT id, CONCAT_WS(',', info, name, message)
FROM myschema.mytable;
不需要聚合。您想要的值都在一行中。
当然,您可以包含id
在字符串中,而不是作为单独的列:
SELECT CONCAT_WS(',', id, info, name, message)
FROM myschema.mytable;
推荐阅读
- php - 处理 PHP 和 Python 之间的通用 XML 文件
- sql - 使用 Teradata 将多列合二为一
- python - 无法转换为 Excel
- ffmpeg - 带有背景颜色的ffmpeg
- vba - 多个文本框值到一个单元格
- swift - Swift Playgrounds:在内置变量查看器中显示时,浮点数总是四舍五入
- android - GraphView 的水平轴标题和标签没有出现
- python - 得到“类型错误:字符串索引必须是整数”比较蛋白质序列
- mysql - 将数据从 Excel 文件插入 SQL Server
- c++ - 我创建了一个将实数转换为美元的程序,但浮点变量不正确