为什么我不能使用变量为IN条件带来数据?

时间:2015-04-30 22:30:09

标签: sql database parameters

DECLARE @variableNVARCHAR(100)

SELECT @variable=param_desc
FROM PARAMETERS 
WHERE param_cve='DPTS'  --(This variable brings the '1','2','3')



SELECT * FROM EMPLoyees WHERE department IN ('1','2','3') --This works.

SELECT * FROM EMPLoyees WHERE department IN (@variable) --This doesn't work.

我认为是因为比较例如1作为字符串=这个'1,'2','3'作为字符串,我该怎么办?

1 个答案:

答案 0 :(得分:0)

假设第一个select语句只返回一行(在任何其他情况下,您的方法被视为......有问题)。

另外,假设@variable = ' '1','2','3' '

在这种情况下,您的上一个查询实际上是:

SELECT * FROM EMPLoyees WHERE department IN (''1','2','3'')

然后,虽然没有任何部门命名为' 1',' 2'' 3'空集是一个非常正确的答案;)