根据类型将联系人详细信息分组到 SQL 中的单独列中

帕普

我在一个联系人栏中有多个电话号码、多个电子邮件地址、多个传真地址。我需要一个查询来获得如下结果

Contact Id |Phone                 |Email                       |Fax
1          |Phone1, Phone2, Phone3|Email1, Email2,Email3,Email4|Fax1, Fax2
2          |Phone1, Phone2        |Email1, Email2,Email3       |Fax1, Fax2

我的输入就像

Value    MeansOfCommunicationDescription    ContactId
[email protected]    Email    2
www.1_port2.com    Web Site    2
Test Insert    Fax    2
Test Insert    Web Site    2
Test Insert    Web Site    2
Test Insert    Web Site    2
Test Insert    Web Site    2
Test Insert    Web Site    2
Test Insert    Web Site    2
test     Phone    2
test     Phone    2
test     Phone    2
Test Insert    Web Site    2
Test Insert    Email    2
布奇曼

您可以使用CTE来获得您想要的结果。您可以尝试以下查询:

;WITH ctePhone
    AS (
        SELECT DISTINCT ContactId           [ID],
        STUFF(( SELECT N', ' + Phone
            FROM Table1 B
             WHERE B.ContactId = A.ContactId
                FOR XML PATH(''), TYPE
                    ).value('(.)', 'NVARCHAR(MAX)'), 1, 1, '') [Phone],
        STUFF(( SELECT N', ' + Email
            FROM Table1 B
             WHERE B.ContactId = A.ContactId
                FOR XML PATH(''), TYPE
                    ).value('(.)', 'NVARCHAR(MAX)'), 1, 1, '') [Email],
        STUFF(( SELECT N', ' + Fax
            FROM Table1 B
             WHERE B.ContactId = A.ContactId
                FOR XML PATH(''), TYPE
                    ).value('(.)', 'NVARCHAR(MAX)'), 1, 1, '') [Fax]
            FROM Table1 A
    )
SELECT DISTINCT #Table1.ContactId,
    ctePhone.Phone,
    ctePhone.Email,
    ctePhone.Fax
FROM Table1
    INNER JOIN ctePhone
        ON Table1.ContactId = ctePhone.[ID]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从联系人列表中填充用户详细信息

从android中的联系人获取地址详细信息

如何在android中启动目录联系人的联系人详细信息活动

在ios(通讯簿)中禁用联系人详细信息视图

如何获取联系人详细信息中的电子邮件地址

使用列表框中的联系人详细信息更新文本框

SQL Server:如何将多个行值分组到单独的列中?

如何将基于日期的用户特定信息加载到SQL中单独的日期列中

如何将查询的结果扩展到 SQL 中的单独列中?

如何将2个表中的SQL列相乘并插入单独的列中?

单独列中的SQL Union

从Android手机的联系人列表中检索指定号码的组织详细信息和电子邮件详细信息?

根据SQL中的不同元素,要求的求和结果将在单独的列中

如何将单独列中冒号前后的单词拆分为sql中的行

Android 无法在本地电话簿中以编程方式更新联系人详细信息

根据单独的表sql的另一列在列中添加值

SQL - 将一列中的值拆分为两个单独的列

从 SQL 表中的联系人列表中查找匹配的联系人

从输出分组到熊猫中的单独列

使用SQL Server将联系人转换为Web表单中的客户端

SQL Server:如何解析一个列的值并插入到单独的表的多个列中?

在 Android 中从联系人中提取详细信息时获取错误数据

如何根据sql中的月份将值的数量分组到列中

根据所选选项的数量将表单的详细信息插入到MySQL表中

在sql中的单独列中显示重复列的计数增加

SQL查询可根据条件从1列中仅获取少量记录,并使用Select查询单独显示/显示它

将分组结果统计到熊猫的单独列中

将每个员工的员工详细信息作为JSON数组返回给SQL Server中的每个员工

在SQL的单独的列中显示重复的列并增加计数