sql拼接同一字段_Sql Server将一列字段拼接成字符串方法

最近在项目中遇到个问题,需要将表中某列字段合并成字符串输出,如果直接通过代码全部读取出来,再遍历进行拼接显然不是最好的方法,所以想着能否在数据读取的时候直接拼接好返回,网上搜了可通过for xml来实现。

首先,准备好需要的数据,脚本如下:

if exists (select * from sysObjects where id=object_id('Student'))drop tableStudentgo

create tableStudent

(

Idint,

Namevarchar(20)

)go

insert into Student values(1,'张三');insert into Student values(2,'李四');insert into Student values(3,'王五');

当前表中数据如下:

需要将Name以“张三;李四;王五”格式显示。

具体通过实现如下:

select stuff((select ';'+namefrom Student for xml path('')),1,1,'') as name

乍一看,是不是有点迷糊,不急,下面我们一一道来。

上面语句我们分为两部分来看,首先要明白for xml path的用法,在SQL SERVER中我们有很多方法读取XML字段中的片段,反过来SQL SERVER也允许我们将表数据以XML方式显示

你可能感兴趣的:(sql拼接同一字段)