根据 ID 连接前缀 -TSQL
Concatenate Prefix based on ID -TSQL
我想要的是设法连接所有具有相同 ID 的前缀。
这是我使用的代码:
CTE_1 (ID,Prefix)AS (SELECT *, STUFF((
SELECT DISTINCT ', ' + Prefix
FROM CTE
WHERE ID = t.ID
FOR XML PATH('')), 1, 2, '')
FROM (
SELECT DISTINCT ID
FROM CTE
) t)
代码工作正常,但是当前缀为空时,它会导入一个 ,
,我想避免它。
有什么想法吗?
SQL 版本:Microsoft SQL Server 2014
您可以按如下方式修正您的查询:
CTE_1 (ID,Prefix)AS (SELECT *, STUFF((
SELECT DISTINCT
CASE
WHEN Prefix IS NOT NULL AND Prefix <> ''
THEN ', ' + Prefix
ELSE ''
END
FROM CTE
WHERE ID = t.ID
FOR XML PATH('')), 1, 2, '')
FROM (
SELECT DISTINCT ID
FROM CTE
) t)
我想要的是设法连接所有具有相同 ID 的前缀。
这是我使用的代码:
CTE_1 (ID,Prefix)AS (SELECT *, STUFF((
SELECT DISTINCT ', ' + Prefix
FROM CTE
WHERE ID = t.ID
FOR XML PATH('')), 1, 2, '')
FROM (
SELECT DISTINCT ID
FROM CTE
) t)
代码工作正常,但是当前缀为空时,它会导入一个 ,
,我想避免它。
有什么想法吗?
SQL 版本:Microsoft SQL Server 2014
您可以按如下方式修正您的查询:
CTE_1 (ID,Prefix)AS (SELECT *, STUFF((
SELECT DISTINCT
CASE
WHEN Prefix IS NOT NULL AND Prefix <> ''
THEN ', ' + Prefix
ELSE ''
END
FROM CTE
WHERE ID = t.ID
FOR XML PATH('')), 1, 2, '')
FROM (
SELECT DISTINCT ID
FROM CTE
) t)