1

4 つのパラメーターを含むレポートがあります。不要にしたい。問題は、これを行うための従来のアプローチであり、16 個の OR/AND ステートメントを作成します。必須ではないパラメーターが 10 個ある場合、SOL ステートメントは制御不能になります。これはうまくいきますが、もっと簡単な方法はありますか?

これが私が持っているものです:

主なデータセット:

select * 
from table 
where 
     table.one = @param1 OR @param1 IS NOT NULL 
     AND.....(etc.etc..)

@param1、@param2、@param3、@param4: (デフォルト値 null/空白)

Select some_column from any_table UNION SELECT '' as Nothing
4

1 に答える 1

2

私が今までやってきた方法は、

WHERE 
  col1 = isnull(@col1, col1) 
  and col2 = isnull(@col2, col2)
  ...etc

あなたが持っているものとほとんど同じですが、いくつかのセマンティックな修正があります。

于 2012-07-06T12:57:08.093 に答える