导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

t-sql动态横表变竖表的问题

yin19991999 2006-01-18 07:33:16

1 2 3
4 5 6

转化为

a 1 4
b 2 5
c 3 6

怎么做啊
...全文
187 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
楼上正解
回复
samfeng_2003 2006-01-18
create table t
(col1 int,col2 int,col3 int)

insert t
select 1,2,3 union all
select 4,5,6

declare @sql varchar(8000),
@sql1 varchar(8000),
@sql2 varchar(8000),
@sql3 varchar(8000)

select @sql='',@sql1='select ''a'' ',@sql2='select ''b''',@sql3='select ''c'''

select @sql1=@sql1+','+cast(col1 as varchar),
@sql2=@sql2+','+cast(col2 as varchar),
@sql3=@sql3+','+cast(col3 as varchar)
from t

select @sql='create table #(col1 varchar(20),col2 int,col3 int) insert #
'+@sql1+' union all
'+@sql2+' union all
'+@sql3+'
select * from #
drop table #'

exec(@sql)
drop table t

col1 col2 col3
-------------------- ----------- -----------
a 1 4
b 2 5
c 3 6

(所影响的行数为 3 行)
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告