不知道要怎么写这种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-------------
[解决办法]
[解决办法]
不可以用pivot吗~~