0

現在、ドリルダウンするためのフィルター システムをユーザーに提供するストアド プロシージャを作成しています。今、私は where ステートメントに条件節を入れようとして困惑しています。以下に示すように:

 WHERE upper(stk.warehouse) LIKE '%' + upper(@warehouse) + '%' AND
       upper(stk.product) LIKE '%' + upper(@product) + '%' AND
       upper(stk.description) LIKE '%' + upper(@description) + '%' AND
       upper(stk.long_description) LIKE '%' + upper(@longdescription) + '%' AND
       cast(safety_stock_level as decimal(20)) LIKE '%' +
       upper(@barcode) + '%' AND        
       (stk.physical_qty + stk.on_order_qty -stk.allocated_qty - stk.back_order_qty -
       stk.uninspected_qty)>@available AND

    *if @or =0 BEGIN
    stk.on_order_qty > @onorder AND stk.physical_qty > @phys 
    else
    stk.on_order_qty > @onorder OR stk.physical_qty > @phys* 

今、私は勝てないif文とcase文を試しました。条件付きの OR または AND ステートメントを使用することは可能ですか?

4

1 に答える 1

3

次のようにします。

((@or = 0 AND stk.on_order_qty > @onorder AND stk.physical_qty > @phys) OR
 (@or = 1 AND (stk.on_order_qty > @onorder OR stk.physical_qty > @phys)))  
于 2012-09-11T08:27:16.990 に答える