数据库把n行查询为1行

Posted by-lhc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库把n行查询为1行相关的知识,希望对你有一定的参考价值。

一、创建示例表

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行的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询从双重返回N行

安卓开发中SQLite数据库,用查询语句根据id查询所在行数据,求代码:判断若查到的所在行数据为空

sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li

rstudio怎么删除最后几行数据

sql合并重复的字段

mysql数据库--多表查询