加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

TSQL – 帮助UNPIVOT

发布时间:2020-12-12 08:55:07 所属栏目:MsSql教程 来源:网络整理
导读:我正在转换此遗留表中的数据: 电话(ID int,PhoneNumber,IsCell位,IsDeskPhone位,IsPager位,IsFax位) 这些位字段不是空的,并且可能所有四个位字段都可以是1. 我怎样才能解开这个东西,以便每个位字段= 1结束一个单独的行.例如,如果原始表看起来像这样…… ID,I
我正在转换此遗留表中的数据:
电话(ID int,PhoneNumber,IsCell位,IsDeskPhone位,IsPager位,IsFax位)
这些位字段不是空的,并且可能所有四个位字段都可以是1.

我怎样才能解开这个东西,以便每个位字段= 1结束一个单独的行.例如,如果原始表看起来像这样……

ID,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

…我希望结果如下:

ID   PhoneNumber   Type
-----------------------
1    123-4567      Cell
1    123-4567      Pager
2    123-6567      Desk
3    123-7567      Fax
4    123-8567      Desk

谢谢!

解决方法

2005/2008版
SELECT ID,Type
FROM
(SELECT ID,IsFax
 FROM Phones) t
UNPIVOT
( quantity FOR Type  IN
    (IsCell,IsFax)
) AS u
where quantity = 1

see also Column To Row (UNPIVOT)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读