PostgreSQL 疑问:如何将查询的内容用逗号连接

2025-03-12 03:13:09
推荐回答(2个)
回答1:

多行转一行


CREATE TABLE TestTitle (
  name   VARCHAR(10),
  title  VARCHAR(20)
);


INSERT INTO TestTitle VALUES ('张三', '程序员');
INSERT INTO TestTitle VALUES ('张三', '系统管理员');
INSERT INTO TestTitle VALUES ('张三', '网络管理员');

INSERT INTO TestTitle VALUES ('李四', '项目经理');
INSERT INTO TestTitle VALUES ('李四', '系统分析员');




SELECT
  name,
  array_to_string(ARRAY(SELECT unnest(array_agg(title))),',') AS allTitle
FROM
  TestTitle
GROUP BY
  name;

 name |           alltitle
------+------------------------------
 李四 | 项目经理,系统分析员
 张三 | 程序员,系统管理员,网络管理员
(2 行记录)



或者

SELECT
  name,
  string_agg(title,',') AS allTitle
FROM
  TestTitle
GROUP BY
  name;

 name |           alltitle
------+------------------------------
 李四 | 项目经理,系统分析员
 张三 | 程序员,系统管理员,网络管理员
(2 行记录)

回答2:

PostgreSQL的连接符与oracle一样,都是||
比如'Post' || 'greSQL' 即为 'PostgreSQL'