将多个电子邮件地址透视到列

时间:2019-10-22 01:02:23

标签: case sql-server-2017

我需要旋转电子邮件表,以便不同的电子邮件地址显示在不同的列中。数据相对简单。对于以下令人困惑的代码,我得到以下错误消息。第6行,关键字“ FROM”附近的语法不正确。第14行,关键字“ AS”附近的语法不正确。感谢您对高级的所有帮助!我是一个相对新手:)

Original Table

我需要将电子邮件放在不同的列中 DesiredTable

``  
      SELECT Emails.entity_FK,
             CASE WHEN emails.MyDefault = 1 THEN emails.EmailAddress END AS EmailPrimary,
             CASE WHEN em.RowNum = 1 THEN em.EmailAddress END AS Email_2,
             CASE WHEN em.RowNum = 2 THEN em.EmailAddress END AS Email_3,
             CASE WHEN em.RowNum = 3 THEN em.EmailAddress END AS Email_4,

       FROM Emails
            LEFT JOIN
            (
            SELECT Entity_FK, EmailAddress,  
            ROW_NUMBER() OVER (PARTITION BY Entity_FK ORDER BY Email_PK) 
               as RowNum
            FROM emails
            WHERE MyDefault = 0 AND EntityTypeCode_FK = 126 
            )  AS em
             emails.Entity_FK = em.Entity_FK
            WHERE emails.EntityTypeCode_FK = 126
    ``

0 个答案:

没有答案