我正在尝试将一列的结果连接成文本字符串并遇到FOR XML PATH
。我试图使用它,但一直在使用
关键字“FOR”附近的语法不正确。
或
关键字“XML”附近的语法不正确
这是我的代码
SELECT DISTINCT
i1.CompanyID,
i1.Company,
i1.IncidentID,
i1.Description,
i1.CreatedDate,
i1.AssignedTo,
i1.Priority,
i1.StatusID,
i1.Status,
Notes = REPLACE( (SELECT Notes AS [data()]
FROM tempdb.dbo.tempIncident i2
WHERE i1.IncidentID = i2.IncidentID
ORDER BY i2.Notes
FOR XML PATH ('')), ' ', ',')
FROM
tempdb.dbo.tempIncident i1
任何帮助将不胜感激。
答案 0 :(得分:1)
您使用的是SQL Server
的旧版本,例如SQL2000,其中不支持XML路径。如果您查看PATH
未标记为蓝色的关键字。
请理解这个article,你会找到一种在SQL 2000中进行字符串连接的方法。
答案 1 :(得分:0)
SELECT
i1.CompanyID,
i1.Company,
i1.IncidentID,
i1.[Description],
i1.CreatedDate,
i1.AssignedTo,
i1.[Priority],
i1.StatusID,
i1.[Status],
STUFF( (SELECT ', ' + i2.Notes [text()]
FROM tempdb.dbo.tempIncident i2
WHERE i1.IncidentID = i2.IncidentID
FOR XML PATH(''),TYPE)
.value('.','NVARCHAR(MAX)'),1, 2, '') AS [Notes]
FROM tempdb.dbo.tempIncident i1
GROUP BY i1.CompanyID,
i1.Company,
i1.IncidentID,
i1.[Description],
i1.CreatedDate,
i1.AssignedTo,
i1.[Priority],
i1.StatusID,
i1.[Status]