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 クエリで 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 に答える