gpt4 book ai didi

sql - 如何从一个表的行获取值到另一个表的列

转载 作者:搜寻专家 更新时间:2023-10-30 21:50:09 24 4
gpt4 key购买 nike

我有两个表,如下所示:

第一张表

   CustomerId    CustomerName

110 XYZ
111 ABC
112 PQR
113 LMN

第二张表

    CustomerId         PhoneNumber

110 9823983298329
111 9996709760760
110 0495054905495
112 8394893489843
113 0932023090900
111 0930290909999
113 8993293288888
112 9828239882388

我想要的是一个类似如下的表结构:

  CustomerId      CustomerName      PhoneNum1             PhoneNum2

110 XYZ 9823983298329 0495054905495
111 ABC 9996709760760 0930290909999
112 PQR 8394893489843 9828239882388
113 LMN 0932023090900 8993293288888

我真的很困惑这里的逻辑,如果我使用 Join 两个表inner join 然后输出表将有多个 CustomerId's 此处不需要,任何帮助都将非常感谢。
提前致谢。

最佳答案

这是一种枢轴形式;您只需要一个专栏即可。您可以使用条件聚合和 row_number() 获得此结果:

select t1.CustomerId, t1.CustomerName,
max(case when seqnum = 1 then PhoneNmber end) as PhoneNmber1,
max(case when seqnum = 2 then PhoneNmber end) as PhoneNmber2
from table1 t1 left join
(select t2.*,
row_number() over (partition by customerId order by customerId) as seqnum
from table2 t2
) t2
on t1.CustomerId = t2.CustomerId
group by t1.CustomerId, t1.CustomerName;

关于sql - 如何从一个表的行获取值到另一个表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31338651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com