Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将多封电子邮件分组到一个联系人_Sql Server_Sql - Fatal编程技术网

Sql server 将多封电子邮件分组到一个联系人

Sql server 将多封电子邮件分组到一个联系人,sql-server,sql,Sql Server,Sql,我的SQL技能相当低,所以请注意我问题的基本层次 我有一个简单的数据库,其中有两个不同的列:联系人和电子邮件 有点像这样: CONTACT | E-MAIL COLUMN contact01 | EMAIL #1 - contact01 contact13 | EMAIL #3 - contact13 contact285 | EMAIL #67 - contact285 contact999 | EMAIL #87 - contact01 如何创建显示以下内容的

我的SQL技能相当低,所以请注意我问题的基本层次

我有一个简单的数据库,其中有两个不同的列:联系人和电子邮件

有点像这样:

 CONTACT    |  E-MAIL COLUMN
 contact01  |  EMAIL #1 - contact01
 contact13  |  EMAIL #3 - contact13
 contact285 |  EMAIL #67 - contact285
 contact999 |  EMAIL #87 - contact01
如何创建显示以下内容的两列(一列接一列):

NEWCONTACT  |  COMBO E-MAIL
contact01   |  EMAIL#1  /  EMAIL#87
contact13   |  E-MAIL#3
contact285  |  E-MAIL#67
注意:第二列上的“/”符号可以是您想要的任何符号。。
我只需要一个分隔符(即“+”、“、”、“;”等…)

整个过程中最困难的部分是您正在按电子邮件列的一部分进行分组。似乎是“真正”的接触。如果情况并非如此(如果您有另一列带有联系人id或类似内容),那么这可以简化很多

WITH GroupingContact AS (
    SELECT Contact, SUBSTRING(eMail,1,charindex('-',eMail)-2) AS eMail,
            SUBSTRING(eMail,charindex('- ',eMail)+2,len(eMail)-charindex('- ',eMail)) 
                    AS GroupingContact
    FROM eMails)
SELECT MIN(Contact) AS Contact,
        STUFF((SELECT ', ' + GC.eMail
                FROM GroupingContact GC
                WHERE GroupingContact.GroupingContact = GC.GroupingContact
                FOR XML PATH(''),TYPE).value('.','VARCHAR(MAX)')
            , 1, 2, '') AS eMailList
FROM GroupingContact
GROUP BY GroupingContact

你是要我下订单吗?在这种情况下,我怎么做?按联系人从EmailColumn ORDER中选择ContactList.name?啊,对不起。。当我指的是“基本级别”时,我实际上指的是“零到无经验”
按子字符串(contacts,8)选择联系人、表中的电子邮件
这是mysql还是其他?为什么要以这种方式存储数据?您是否在“联系人”列中列出contact01,并将其作为电子邮件列的后缀?这对我来说似乎很成问题。