发布于 2016-05-06 23:06:41 | 153 次阅读 | 评论: 0 | 来源: 网友投递
这里有新鲜出炉的SQL Server教程,程序狗速度看过来!
SQL Server 数据库
SQL Server 即 Microsoft SQL Server 。
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
有表如下:
如何获得如下结果:
解法
使用xml转换
代码如下:
CREATE TABLE body
(
ID int,
BODY nvarchar(20)
)
go
INSERT INTO body VALUES(1,'aaaa')
INSERT INTO body VALUES(2,'bbbb')
INSERT INTO body VALUES(1,'cccccc')
INSERT INTO body VALUES(3,'ddddd')
go
SELECT * FROM body
SELECT distinct a.ID,stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'') ASBODY
FROM
body a
--具体思路是这样的:
SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')
--这条语句的作用是按照a中的ID查找body表中ID=a.ID的所有记录,并把它转换成一个xml(关于将查询集转换成xml的文章,你可以去看看)
stuff((SELECT ','+BODY FROM body WHERE ID=a.ID FOR xml path('')),1,1,'')
--这条语句的作用是把生成的xml前面的一个逗号去掉并转化成标量值
--最后用一个distinct去掉重复的记录