首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

列转行的SQL语句,该如何处理

2012-02-11 
列转行的SQL语句现在有一个数列,如下:PageSize918其中9代表是A4纸型 ,1代表B5纸型,8代表A3纸型我想经过转

列转行的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,'')
[解决办法]
探讨
SQL code
SELECT STUFF((SELECT ','+ PageSize FROM TB FOR XML PATH('')),1,1,'') AS PageSize



不好意思多了个WHERE

[解决办法]
探讨

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……

[解决办法]
1L正解
C# code
SELECT STUFF((SELECT ','+ PageSize FROM TB FOR XML PATH('')),1,1,'') AS PageSize 

热点排行