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'作为字符串,我该怎么办?
答案 0 :(得分:0)
假设第一个select
语句只返回一行(在任何其他情况下,您的方法被视为......有问题)。
另外,假设@variable = ' '1','2','3' '
。
在这种情况下,您的上一个查询实际上是:
SELECT * FROM EMPLoyees WHERE department IN (''1','2','3'')
然后,虽然没有任何部门命名为' 1',' 2'' 3'空集是一个非常正确的答案;)