我正在传递int的列表(以逗号分隔)
即。 1, 2, 3, 4
对我的sp。但是我收到一个错误,因为列表是一个字符串,并且我正在与一个int字段进行比较。有没有一种方法可以将列表转换为int,而无需使用用户创建的函数?
注意:employeeID为INT
declare @intArray varchar(200)
SELECT *
FROM tbl_Employee
WHERE employeeID IN ( @intArray )
错误为“无法将varchar类型转换为int”
最佳答案
您不想将该列表转换为int,而是转换为int列表。
对此没有强制转换运算符或函数,但是您可以使用动态SQL来解决它。
基本上你写
EXECUTE('SELECT * FROM tbl_Employee WHERE employeeID IN ('+@intArray+')')
但是要注意SQL注入攻击!
关于tsql - t-sql将逗号分隔的字符串转换为int,而无需使用用户创建的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4471449/