Sql server TSQL如何在连接内部水平连接,

Sql server TSQL如何在连接内部水平连接,,sql-server,tsql,Sql Server,Tsql,我的任务是像在示例中一样显示代码名,可能有多个代码用逗号分隔,我尝试使用xml解析,但看起来情况有所不同。在下面的示例代码中,我使用了简单的方法,但也许有更好的方法更灵活: 我还包括在照片所需的输出。 输出 Name Code CodeName ------- -------- ------------------------- Alpha AA Avia Bravo AA,BB,CC Avia, Bahamas, Chile Whiskey NULL

我的任务是像在示例中一样显示代码名,可能有多个代码用逗号分隔,我尝试使用xml解析,但看起来情况有所不同。在下面的示例代码中,我使用了简单的方法,但也许有更好的方法更灵活: 我还包括在照片所需的输出。

输出

Name    Code     CodeName
------- -------- -------------------------
Alpha   AA       Avia
Bravo   AA,BB,CC Avia, Bahamas, Chile
Whiskey NULL     NULL

你可以添加文本而不是照片吗?图像将在某些域中被阻止。我不知道你为什么添加此图像,因此已将其回滚。
WITH cte1 AS (
SELECT 'Alpha' Name,  'AA' Code  UNION
SELECT 'Bravo' Name,  'AA,BB,CC' Code  UNION
SELECT 'Whiskey' Name,  NULL Code),
 cteLookup AS (
SELECT 'AA' CodeID,  'Avia' CodeName  UNION
SELECT 'BB' CodeID,  'Bahamas' CodeName  UNION
SELECT 'CC' CodeID,  'Chile' CodeName  )

--

SELECT
     A.Name,
     A.Code,
     LEFT(A.CodeName, LEN(A.CodeName) - 1) AS CodeName
FROM
(
    SELECT
        C.Name,
        C.Code,
        (       
            SELECT 
                CL.CodeName + ', ' 
            FROM                
                cteLookup CL
            WHERE 
                C.Code LIKE '%' + CL.CodeID + '%'
            FOR XML PATH ('')
        ) AS CodeName

    FROM
        Cte1 C
) A
Name    Code     CodeName
------- -------- -------------------------
Alpha   AA       Avia
Bravo   AA,BB,CC Avia, Bahamas, Chile
Whiskey NULL     NULL