我有以下 SQL 语句:
WITH CTE(Col01,...,Col05) AS
(
...
)
SELECT ....
,CASE ....
WHEN ... THEN CASE ...
WHEN 0 THEN ...
ELSE (SELECT STUFF((SELECT ',' + CAST(Col002 AS NVARCHAR(10)) FROM TableOne WHERE Col05=CTE.Col05 FOR XML PATH('')),1, 1,''))
END
WHEN ... THEN ...
WHEN ... THEN ...
ELSE ...
END
,...
FROM TableOne
CROSS APPLY CTE
WHERE TableOne.Col01=CTE.Col01
我想从列表信息中返回 CSV 列表 - 当我单独执行它时,这些语句可以正常工作,但是在上面的 sql 语句语法中,它会生成以下错误:
Msg 245, Level 16, State 1, Line 1
将 nvarchar 值 '101,102,103,108,109,110,112,113,114,115,116,117,118,119,120,121,122,126,130,135,164,165,218' 转换为数据类型时失败。
如果我将语句替换为 '1' 或 1,它不会让我出错。为什么它试图将 CSV 列表转换为 int?