列转行问题

hipop 2006-12-24 04:33:38
表A
a1 a2 a3 ...
1 2 3 ...

表B
b1 b2
1 k
2 f
3 c
...

现在需要得到下面的表
字段名: 1 2 3 ...
一条记录:k f c ...

大家帮我看看,谢谢了!
...全文
261 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
askyin 2006-12-24
  • 打赏
  • 举报
回复
create table ta(b1 int ,b2 varchar(5))
insert ta
select 1, 'k'union all
select 2, 'f'union all
select 3, 'c'


declare @sql varchar(1024)
set @sql=''
select @sql=@sql+',max(case when b1='+cast(b1 as varchar(20))+' then b2 else '''' end) as '''+cast(b1 as varchar(20))+'''' from ta
set @sql='select'+stuff(@sql,1,1,' ')+' from ta'
exec(@sql)


k f c

being21 2006-12-24
  • 打赏
  • 举报
回复
路过学习~
askyin 2006-12-24
  • 打赏
  • 举报
回复
up
hipop 2006-12-24
  • 打赏
  • 举报
回复
试试看 先~
yuedeem 2006-12-24
  • 打赏
  • 举报
回复
路过学习~
中国风 2006-12-24
  • 打赏
  • 举报
回复
create table ta(b1 int ,b2 varchar(5))
insert ta
select 1, 'k'union all
select 2, 'f'union all
select 3, 'c'

declare @sql varchar(1000)
set @sql=''
select @sql=@sql+',['+rtrim(b1)+']=max(case b1 when '''+rtrim(b1)+''' then b2 end)'
from ta group by b1
set @sql=stuff(@sql,1,1,'')
set @sql='select '+@sql+' from ta'
exec(@sql)
1 2 3
----- ----- -----
k f c

警告: 聚合或其它 SET 操作消除了空值。

34,594

社区成员

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

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