我有一列包含呼叫每个用户(电子邮件,电话)的不同方式,每种呼叫方式都有单独的行。我想要整合这些信息,这些信息将以用户的同一行邮件和电话呈现给我。我如何在查询中写这个?例如:
来自:
ID USER communication
1 boy 50000148
2 boy 5405112741
3 boy boy@gmail.com
:
ID USER EMAIL PHONE1 PHONE2
1 boy boy@gmail.com 506770148 542212741
- 这是一个将行转换为列的例子,数据应该有phone1,phone2和email作为列通信中的行名。用例将行转换为列(根据您发布的结果图像进行pivot)
第1点和第2点
select user,id,
sum(case when communication='phone1'
then value end) as phone1,
sum(case when communication='phone2'
then value end) as phone2,
max( case when communication='email'
then value end )as email
from test
输出