gpt4 book ai didi

sql-server-2008 - 使用扁平化结果连接查询

转载 作者:行者123 更新时间:2023-12-04 06:41:28 24 4
gpt4 key购买 nike

我有以下实体

alt text

AddressType 只是一个枚举字段,用于定义电子邮件是否为个人/工作/其他。

是否可以执行一个返回扁平结果的查询,如以下示例中的结果?

CustomerID    Full Name       Personal Email         Work Email
----------- -------------- ----------------- -----------------------
1 John Doe johndoe@hotmail.com john.doe@company.com

最佳答案

两个主要选择:

1) 选择它作为典型(两行,每封电子邮件一行),然后使用 pivot 运算符压平。
pivot 的示例(我把它称为我在记事本中写的一个例子。它可能有点错误,但它应该为你指出正确的方法):

select
CustomerID,
FullName
[1] as WorkEmail,
[2] as HomeEmail
from
(select
c.CustomerID, c.FullName, e.AddressText, e.AddressType
from
Customer c
join emails e on e.CustomerID = c.CustomerID) as Source
pivot (
AddressText
FOR AddressType in ([1], [2])
)

2) 加入电子邮件表两次,每种类型的地址一次。建议外部联接,因此如果缺少一个,您仍然可以得到另一个。

关于sql-server-2008 - 使用扁平化结果连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4185426/

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