我的SQL查询在where子句给出了一个行作为输出

问题描述:

该查询返回只有一行我的SQL查询在where子句给出了一个行作为输出

Set @id='2,3,4,5,6,7,8,9'; 
Set @typers=1; 
Select * from Employee where (@typers=1 and pkEmpId in (@id)); 

如果我们直接在指定2,3,4,5,6,7,8,9查询它的作品,我知道这是因为“'”。

但我m如果同样的问题时,我将值作为参数的过程

call CalculateStandardFinalRun('0','4','1900-01-01 00:00:00','1900-01-01 00:00:00','5','1','2,3,4,5,6,7,8,9'); 

我怎样才能得到所有值

我想你应该试试这个

Select * from Employee where (@typers=1 and FIND_IN_SET(pkEmpId, @id))); 
+0

: - 谢谢你,我的作品 – Shashank 2013-05-09 12:15:52

@id项目是一个字符串。您可能也使用了此语法

pkEmpId in ('something-or-other') 

它不会做你想做的。 in列表中的每个项目必须是单独的数据项。

+0

: - 我还张贴追问之前试过,但它没有给出记录 – Shashank 2013-05-09 12:09:34