0

此查询仅返回一行

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

如果我们在 IN Query 中直接分配 2,3,4,5,6,7,8,9 它可以工作,我知道这是因为“'”。

但是当我在过程中将值作为参数传递时,我遇到了同样的问题

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');

我如何获得所有值

4

2 回答 2

1

我想你应该试试这个

Select * from Employee where (@typers=1 and FIND_IN_SET(pkEmpId, @id)));
于 2013-05-09T12:12:17.447 回答
0

您的@id项目是一个字符串。你可能很好地使用了这个语法

  pkEmpId in ('something-or-other')

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

于 2013-05-09T12:03:12.683 回答