34,588
社区成员
发帖
与我相关
我的任务
分享
declare @t table (a int,b int,c int)
insert into @t select 7, 2, 3
select name='a',[values]=a from @t
union all
select name='b',[values]=b from @t
union all
select name='c',[values]=c from @t
/*
a 7
b 2
c 3
*/
/*如何有SOL语句查询
a b c
7 2 3
转换成
name values
a 7
b 2
c 3*/
use tempdb
go
if object_id('tempdb..#') is not null
drop table #
create table #(a int
,b int
,c int)
insert into #
select 7,2,3
select * from #
select name,[values]
from (select a,b,c from # ) as a
unpivot
([values] for [name]
in (a,b,c)
) as unpvt
--用动态:
create table os(a int,b int,c int)
insert into os select 7, 2, 3
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+'union all select name='''+ name +''',value='+name+ ' from os ' from syscolumns where id=object_id('os')
set @sql=stuff(@sql,1,10,'')
exec(@sql)