2 yi shen zhi nu yi_shen_zhi_nu 于 2017.01.05 10:08 提问

sql 查询将多个值合到一起
sql

如有如下几条数据

中国 北京
中国 上海
中国 深圳
美国 XX
美国 YY

我想查询出来的结果为 两个字段 如下
中国 北京,上海,深圳
美国 XX,YY

这个可以实现吗

6个回答

huhedong1182738042
huhedong1182738042   2017.01.05 10:32
已采纳

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,根据数据库类型不一样,函数不一样

xiao1011lc0120
xiao1011lc0120   2017.01.05 10:23

上答案中:test为表名称

lt_yl
lt_yl   2017.01.05 10:25
welan123123
welan123123   2017.01.05 10:49

可以啊,这实际上就是多行转列,我给你发个教程连接,不懂再问我

推荐使用递归方式处理

welan123123
welan123123   2017.01.05 10:50
xiao1011lc0120
xiao1011lc0120   2017.01.05 10:21

图片说明
SELECT t.county,GROUP_CONCAT(t.city) city FROM test t
GROUP BY t.county

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
如何把个表的合计字段 合并SQL查询到一个结果集中
为了把两个查询视图中【视图_物业应交】【视图_抄表应交】的结果再次的集中到一个查询结果中并合计计算出每个用户的计量仪表和物业收费的合计值。      这个问题搞了2天了,今天终于解决了。      还要感谢CSDN的各位高手给予我的帮助!      这是我的发帖提问地址:http://topic.csdn.net/u/20101231/11/aac71c68-079a-4a9e-ae8b-5
SQL 将多条查询结果拼接到一起
1、DECLARE @AA VARCHAR(MAX)SET @AA =   ( SELECT A.XX + ';'    FROM A WITH(NOLOCK)    FOR XML PATH('')   )SELECT @AA2、DECLARE @AA VARCHAR(MAX)SET @AA = '' -- 必须赋初始值(sql中的null加上任何值都是null)SELECT @AA = @AA
SQL 拼接多个字段的值&一个字段多条记录的拼接
 如student表: studentID studentName studentScore 01 Alice 90 02 Bill 95 03 Cindy 100 一、拼接多个字段的值 select stud
SQL查询结果把两个字段拼接到一起
举例:从人员基本信息表user_info中查出姓名和毕业学校,把姓名和学校两个字段拼接到一起。SQL语句:select user_name || school as info from user_info;注:拼接字段的符号为管道操作符 | |
怎样将结构完全一样的两个表的内容合并到一个表中,SQL语句
select * into 新表名 from (select * from T1 union all select * from T2) 这个语句可以实现将合并的数据追加到一个新表中。 不合并重复数据 select * from T1 union all select * from T2 合并重复数据 select * from T1 union selec
SQLServer中如何将一个字段的多个记录值合在一行显示
SQLServer中如何将一个字段的多个记录值合在一行显示
sql查询 ,多行数据合并成一行,并且显示合并后某一列的值拼接结果
使用stuff + for xml path 解决sql查询 order by之后拼接列,并显示拼接后的字符串
Oracle 多个查询语句结果合并
有三个不同的查询语句 1: select year_mon,sum(gasmon) from a where id='HBsRf0t6UI' and class=11 group by year_mon 2: select year_mon,sum(wellgasmon) from b where id='HBsRf0t6UI' and class=11 group by
mysql之union联合查询、子查询、连接查询
若要将多个表的将查询结果合并则要用到union 1、第一个select 语句  union  第二个select 语句         2、注意:如果在union 子句中使用 order by,需要和limit一起使用,因为union会优化掉 order by 使用union 连接查询的语句中,select 语句的查询字段要求一致,并不要求字段名是否一致 如果出现数据重复的情况,会将重复的
cxf多数据源配置
通过cxf将多个webServices整合到一起方便管理与维护