【发布时间】:2016-01-21 00:53:59
【问题描述】:
我有这个问题:
SELECT
A.USERID
A.NAME
PVT.PHONE 'PROBABLY A CASE STATEMENT ON NULL WILL GO HERE...
PVT.ADDRESS 'ON HERE AS WELL...
FROM
USERS A
'I NEED TO CREATE A PIVOT TABLE HERE WITH THE ALIAS OF 'PVT' ON TABLE 'B'
B 内容:
UserID PHONE ADDRESS TYPE
1 444-555-2222 XXXXXXX PHONE
1 XXXXXXX 66 Nowhere NOTADDRESS
如果 TYPE = 'PHONE',我希望通过 B.PHONE 在同一行获取用户的电话。
如果 TYPE = 'ADDRESS',我还希望通过获取 B.ADDRESS 内容在同一行上获取用户地址。
正如您在上面的表格转储中看到的,我没有有与 用户 ID 和 TYPE = 'ADDRESS' 匹配的记录
所以我需要在主 SELECT 中显示一个空白或“无地址”,这将显示电话,但在同一行,空白或“无地址”。
我不想创建 INNER JOIN,因为如果 B 中没有匹配的 UserID,查询将不会返回我在表 A 中为该用户提供的信息。
另外,LEFT JOIN 会创建两行,这是我不想要的。
我认为我将数据透视表作为别名会这样做,但我不知道如何创建这样的别名。
有什么想法吗?
【问题讨论】:
标签: sql tsql sql-server-2005