日期:2014-05-18  浏览次数:20455 次

怎么样将表里的字段和值转为记录
如下表

ID 北京 天津 广东
1 A B C
2 D E F

转成如下表

ID 地域 值
1 北京 A
1 天津 B
1 广东 C
2 北京 D
2 天津 E
2 广东 F

新手入场,请多关照。

------解决方案--------------------
select id,'北京' as 地域, 北京 from ta
union all
select id,'天津' as 地域, 天津 from ta
union all
select id,'广东' as 地域, 广东 from ta

------解决方案--------------------
SQL code
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (ID int,北京 nvarchar(2),天津 nvarchar(2),广东 nvarchar(2))
insert into [TB]
select 1,'A','B','C' union all
select 2,'D','E','F'

select * from [TB]


select ID ,area,number
from (select ID,北京 ,天津,广东 
from TB)P
unpivot
(number for area in (北京 ,天津,广东 )) as unpvt;

/*
1    北京    A
1    天津    B
1    广东    C
2    北京    D
2    天津    E
2    广东    F*/