我正在传递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/

10-13 00:52