3

次の構文でエラー「'@orderwhere' の近くで、条件が期待されるコンテキストで指定された非ブール型の式」が生成されるのはなぜですか?

use orders
declare @orderwhere varchar(5000)
set @orderwhere = 'order_status.step = 1'
select order_status.order_id
from order_status
where @orderwhere
4

2 に答える 2

3

クエリの一部を動的にすることはできません。オール オア ナッシングである必要があります。次に、EXEC()を使用して動的クエリを実行します

exec('select order_status.order_id
      from order_status
      where ' + @orderwhere)
于 2013-07-22T11:47:25.727 に答える
1

where句は文字列です。動的 SQL または次のようなものを使用する必要があります。

use orders
declare @orderwhere varchar(5000)
set @orderwhere = '1'
select order_status.order_id
from order_status
where order_status.step = @orderwhere
于 2013-07-22T11:49:09.603 に答える