一、创建示例表
CREATE TABLE TestTable (
name VARCHAR(10),
skill VARCHAR(10)
);
INSERT INTO TestTable VALUES (‘张三‘, ‘php‘);
INSERT INTO TestTable VALUES (‘张三‘, ‘java‘);
INSERT INTO TestTable VALUES (‘张三‘, ‘c#‘);
INSERT INTO TestTable VALUES (‘李四‘, ‘c‘);
INSERT INTO TestTable VALUES (‘李四‘, ‘c++‘);
表结构为:
name
skill
张三
php
张三
java
张三
c#
李四
c
李四
c++
希望查询的结果:
name
allSkill
张三
php,java,c#
李四
c,c++
二、SQL Server中实现
-- SQL Server
SELECT name,STUFF(
(
SELECT ‘,‘ + skill
FROM testtable a
WHERE a.name = b.name
FOR XML PATH(‘‘)
),
1, 1, ‘‘) AS allSkill
FROM testtable b
GROUP BY name
三、MySQL中实现
-- MySQL
SELECT name,GROUP_CONCAT(skill) AS allSkill
FROM testtable
GROUP BY name;
四、Oracle中实现
-- Oracle
SELECT name,WMSYS.WM_CONCAT(skill) AS allSkill
FROM testtable
GROUP BY name;
数据库把n行查询为1行
标签:varchar skill kill values ++ mysq concat name 数据
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/by-lhc/p/7239142.html