sql 查询将多个值合到一起
问题描述:
如有如下几条数据
中国 北京
中国 上海
中国 深圳
美国 XX
美国 YY
我想查询出来的结果为 两个字段 如下
中国 北京,上海,深圳
美国 XX,YY
这个可以实现吗
答
CREATE DATABASE test;
CREATE TABLE city(
Id INT,
pname VARCHAR(50),
name VARCHAR(50)
);
USE test;
INSERT INTO common.city (Id, pname, name)
VALUES (1, '中国','北京');
INSERT INTO common.city (Id, pname, name)
VALUES (2, '中国','上海');
INSERT INTO common.city (Id, pname, name)
VALUES (3, '美国','XX');
INSERT INTO common.city (Id, pname, name)
VALUES (4, '美国','YY');
SELECT pname,GROUP_CONCAT(name) AS name FROM city GROUP BY pname
以上为mysql,如果是其他数据库,使用的函数不一样而已。orcale中使用wmsys.wm_concat,根据数据库类型不一样,函数不一样
答
上答案中:test为表名称