当前位置: 代码迷 >> Sql Server >> 不知道要如何写这种SQL语句
  详细解决方案

不知道要如何写这种SQL语句

热度:4   发布时间:2016-04-27 12:12:59.0
不知道要怎么写这种SQL语句
有五行,列名为ID的列
1
2
3
4
5
变成一行,列名为ID的列
1,2,3,4,5  
这种要怎么写,



------解决方案--------------------
典型的行转列吗?
------解决方案--------------------
SQL code
select convert(nvarchar(50),Id)+',' from tab for xml path('')
------解决方案--------------------
SQL code
--> 测试数据:[tb]if object_id('[tb]') is not null drop table [tb]go create table [tb]([name] int)insert [tb]select 1 union allselect 2 union allselect 3 union allselect 4 union allselect 5--------------开始查询-------------------------SELECT STUFF((SELECT ','+LTRIM([name])   FROM [tb] FOR XML PATH('')),1,1,'') AS [name]----------------结果----------------------------/* name--------------1,2,3,4,5*/
------解决方案--------------------
SQL code
----------------------------------------------------/*如何将一列中所有的值一行显示数据源  a  b  c  d  e结果a,b,c,d,e*/create table tb(col varchar(20))insert tb values ('a')insert tb values ('b')insert tb values ('c')insert tb values ('d')insert tb values ('e')go--方法一declare @sql varchar(1000)set @sql = ''select @sql = @sql + t.col + ',' from (select col from tb) as tset @sql='select result = ''' + left(@sql , len(@sql) - 1) + ''''exec(@sql)/*result     ---------- a,b,c,d,e,*/--方法二declare @output varchar(8000)select @output = coalesce(@output + ',' , '') + col from tbprint @output/*a,b,c,d,e*/---方法三declare @s varchar(1000)select @s=isnull(@s+',' , '')+col from tbselect @s/*a,b,c,d,e*/drop table tb-------------
------解决方案--------------------
探讨
SQL code
----------------------------------------------------
/*如何将一列中所有的值一行显示
数据源
a
b
c
d
e
结果
a,b,c,d,e
*/

create table tb(col varchar(20))
insert tb values ('a')
insert tb……

------解决方案--------------------
不可以用pivot吗~~
  相关解决方案