如何将不同类型的值从一列分布到各个列中

  • 本文关键字:一列 分布 同类型 sql teradata
  • 更新时间 :
  • 英文 :


我有一个表,它在一列中存储不同的值。
column_a: name
column_b: contact_type - email或电话
column_c: contact_value -确切的电子邮件地址或电话号码
如果一个人同时拥有email和电话,则有两行。

我试图得到一个选择,将不同的值分布到各自的列:
column_a: name
column_b: email_value
column_c: phone_value
一个人应该正好有一行。

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

是否有一种方法如何将两个值分配到两个各自的列中,并且每个人只有一个记录?

希望这不是一个太令人困惑的问题…

您可以使用条件聚合:

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;

相关内容

  • 没有找到相关文章

最新更新