我有下面的代码。我之前使用过与此类似的东西,允许在逗号分隔的字符串中输入多个值。使用XML节点的where子句中的TSQL多个值
由于某些原因,尽管查询只接受第一个值,并且不会继续读取值。 @Tables
会像"Table1, table2, table3"
有人可以看到我的错误?它适用于编号为'1, 2, 3, 4'
的数字,但它不适用于字符串。
DECLARE @TableXML AS XML
SET @TableXML = cast(('<a>'+replace(@Tables,',' ,'</a><a>')
+'</a>') AS XML);
SELECT
*
FROM CABDetail
WHERE CABDetail.BudgetName in (SELECT
a.value('.', 'varchar(max)')
FROM @TableXML.nodes('a') AS FN(a)
)
ORDER BY CABDetail.account
应该已经工作假设'CABDetail.BudgetName'包含值表1,表2,表3中的一个识别问题。你可以用可以用来重现问题的数据创建示例表吗? – har07