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

yin19991999 2006-01-18 07:33:16

1 2 3
4 5 6

转化为

a 1 4
b 2 5
c 3 6

怎么做啊
...全文
236 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
浩方软件HFWMS 2006-01-19
  • 打赏
  • 举报
回复
楼上正解
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 行)

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧