首页 > 解决方案 > 将具有多个联系人的帐户显示为单独的列而不是行?

问题描述

假设,我有一张联系人表。该表有联系人 ID 和帐户 ID 所以如果我这样做

Select ContactID,AccountID From table

我明白了:

在此处输入图像描述

相反,我想看到这个:

在此处输入图像描述

这合理吗?

标签: sql-serverformattingaggregation

解决方案


有两个且只有两个联系人标准账户,聚合似乎是一个直接的选择:

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

推荐阅读