Sql server TSQL如何在连接内部水平连接,
我的任务是像在示例中一样显示代码名,可能有多个代码用逗号分隔,我尝试使用xml解析,但看起来情况有所不同。在下面的示例代码中,我使用了简单的方法,但也许有更好的方法更灵活: 我还包括在照片所需的输出。 输出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
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