次の 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 ステートメント構文では次のエラーが発生します。
メッセージ 245、レベル 16、状態 1、行 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' をデータ型 in に変換するときに、変換に失敗しました。
ステートメントを「1」または 1 だけに置き換えても、エラーは発生しません。CSV リストを int に変換しようとしているのはなぜですか?