sql-server - 将具有多个联系人的帐户显示为单独的列而不是行?
问题描述
假设,我有一张联系人表。该表有联系人 ID 和帐户 ID 所以如果我这样做
Select ContactID,AccountID From table
我明白了:
相反,我想看到这个:
这合理吗?
解决方案
有两个且只有两个联系人标准账户,聚合似乎是一个直接的选择:
select account_id, min(contactId) contactId1, max(contactId) contactId2
from mytable
group by account_id
如果某些帐户有 2 个联系人,而其他帐户只有 1 个,则:
select
account_id,
min(contactId) contactId1,
case when count(*) > 1 then max(contactId) end contactId2
from mytable
group by account_id