数据库把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行的主要内容,如果未能解决你的问题,请参考以下文章
安卓开发中SQLite数据库,用查询语句根据id查询所在行数据,求代码:判断若查到的所在行数据为空
sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li