Gus*_*nti 6 sql t-sql sql-server unpivot
我正在转换此遗留表中的数据:
Phones(ID int, PhoneNumber, IsCell bit, IsDeskPhone bit, IsPager bit, IsFax bit)
这些位字段不是空的,并且可能所有四个位字段都可以是1.
我怎样才能解开这个东西,以便每个位字段= 1最终得到一个单独的行 .例如,如果原始表看起来像这样......
ID, PhoneNumber, IsCell, IsPager, IsDeskPhone, IsFax
----------------------------------------------------
1 123-4567 1 1 0 0
2 123-6567 0 0 1 0
3 123-7567 0 0 0 1
4 123-8567 0 0 1 0
Run Code Online (Sandbox Code Playgroud)
...我希望结果如下:
ID PhoneNumber Type
-----------------------
1 123-4567 Cell
1 123-4567 Pager
2 123-6567 Desk
3 123-7567 Fax
4 123-8567 Desk
Run Code Online (Sandbox Code Playgroud)
谢谢!
2005/2008版
SELECT ID, PhoneNumber, Type
FROM
(SELECT ID, PhoneNumber,IsCell, IsPager, IsDeskPhone, IsFax
FROM Phones) t
UNPIVOT
( quantity FOR Type IN
(IsCell, IsPager, IsDeskPhone, IsFax)
) AS u
where quantity = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4870 次 |
| 最近记录: |