SQL SERVER单个字段列转行由逗号","分隔

 
  
   --1:创建一个表来测试
	CREATE TABLE Test_table (seqno INT ,field1 NVARCHAR(30))

   --2:下面是将表Test_table分别插入5笔数据
	INSERT INTO Test_table (seqno,field1)VALUES('1',N'列转行1')
	INSERT INTO Test_table (seqno,field1)VALUES('2',N'列转行2')
	INSERT INTO Test_table (seqno,field1)VALUES('3',N'列转行3')
	INSERT INTO Test_table (seqno,field1)VALUES('4',N'列转行4')
	INSERT INTO Test_table (seqno,field1)VALUES('5',N'列转行5')
	
	SELECT * FROM Test_table (NOLOCK)--3:查询结果,目前是一列下来。

	seqno       field1
	----------- ------------------------------
	1           列转行1
	2           列转行2
	3           列转行3
	4           列转行4
	5           列转行5

	(5 行受影响)

	
--:4:如果我们想把上面查询出field1字段转成一行,且每个值用逗号分隔,那该多好!语法如下:

	SELECT STUFF((SELECT ','+field1 FROM  Test_table (NOLOCK) for xml path('')),1,1,'') 	

--5:下面是field1字段列转成行,且每个值用逗号分隔

	列转行1,列转行2,列转行3,列转行4,列转行5

	(1 行受影响)

--6:是不是帮了大大的忙?今天刚好需要将一个临时表的单个字段转成行且用逗号分隔,网上找了一堆资料,其实就是这么简单的一句,留下来备用!

--7:drop table Test_table 测试完就可以删掉这个表(前提是这个表是刚刚你才新建的!)


你可能感兴趣的:(SQL小技巧)