【问题标题】:How to distribute different types of values from one column into individual columns如何将不同类型的值从一列分配到各个列
【发布时间】:2021-02-16 21:55:39
【问题描述】:

我有一张表,在一列中存储不同的值。 假设结构如下:
column_a:姓名
column_b:contact_type - 电子邮件或电话
column_c:contact_value - 确切的电子邮件地址或电话号码
如果一个人同时有电子邮件和电话,有两行。

我试图获得一个将不同值分配到各个列中的选择:
column_a: name
column_b: email_value
column_c: phone_value
一个人应该正好有一排。

到目前为止,我所有的尝试都结束了一个人有两行 - 电子邮件地址和电话空,反之亦然......

有没有办法如何将这两个值分配到两个相应的列中,并且每个人只有一个记录?

希望这不是太令人困惑的问题......

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    您可以使用条件聚合:

    select column_a,
           max(case when column_b = 'phone' then column_c end) as phone,
           max(case when column_b = 'email' then column_c end) as email
    from t
    group by column_a;
    

    【讨论】:

      猜你喜欢
      • 2019-05-17
      • 1970-01-01
      • 2019-10-08
      • 2021-03-01
      • 2020-05-04
      • 2022-11-28
      • 1970-01-01
      • 2022-12-05
      • 2018-11-21
      相关资源
      最近更新 更多