列转行的SQL语句
现在有一个数列,如下:
PageSize
9
1
8
其中9代表是A4纸型 ,1代表B5纸型,8代表A3纸型
我想经过转换后的效果
PageSize
9,1,8
这个效果如何实现,非常感谢大侠
[解决办法]
- SQL code
SELECT STUFF((SELECT ','+ PageSize FROM TB WHERE FOR XML PATH('')),1,1,'') AS PageSize
[解决办法]
- SQL code
declare @s nvarchar(2000)select @s=isnull(@s+',','')+rtrim(PageSize) from Tabselect @s as PageSize
[解决办法]
- SQL code
SELECT STUFF((SELECT ','+ PageSize FROM TB FOR XML PATH('')),1,1,'') AS PageSize
[解决办法]
- SQL code
use Tempdbgo--> --> if not object_id(N'Tempdb..#') is null drop table #GoCreate table #([PageSize] int)Insert #select 9 union allselect 1 union allselect 8Godeclare @s nvarchar(2000) select @s=isnull(@s+',','')+rtrim(PageSize) from # select @s as PageSize/*9,1,8*/
[解决办法]
- 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*/drop table tb
[解决办法]
- SQL code
SELECT STUFF(REPLACE(REPLACE((SELECT pagesize FROM tb FOR XML AUTO),'<tb pagesize="',','),'"/>',''),1,1,'')
[解决办法]
[解决办法]
[解决办法]
1L正解
- C# code
SELECT STUFF((SELECT ','+ PageSize FROM TB FOR XML PATH('')),1,1,'') AS PageSize