2017-03-29 24 views
0

私は部門を決定するために整数値のリストから選択できるドロップダウンデータ検証ボックスを持つExcelワークシート、またはすべての部門を取得するための単語 "ALL"を持っています。私はそのセルの値をSQLを使ってストアドプロシージャに渡しています。 SQLではWHERE [email protected]があります。ストアドプロシージャに複数の値を渡す方法

私は1つの部門の選択を許可するつもりなら、これはうまくいきますが、すべての部門も許可したいと思います。

どうすればいいですか? INオペレータなどで何らかの仕掛けをしていますか?ここに保存されたスクリプト内の

答えて

1

CASEステートメントを使用してください。 "ALL"の場合は、Departmentフィールドを返すことができます。他にもあなたが送信した値を渡す場合:

Where Department = CASE @input WHEN 'ALL' Then Department ELSE @input END 
+0

ご協力ありがとうございます。最終的に役立つ構文は次のとおりでした:WHERE Department = case @ @ Dept = 'ALL' then Department else @Dept end – JFrizz

1

2種類の溶液:

  1. あなたは、クエリのセットにあります、その後if文を置きます。
  2. iif/caseステートメントを条件内に入れます。
+0

ありがとうございます!私は大きな助けとなった方法2を使うことに決めました!あなたの答えは他の人との組み合わせで非常に役に立ちました。 – JFrizz

1

ユーザーが "ALL" を選択した場合は、NULLにPARAMTERを設定することができます:@Deptの値がNULLである場合には

select * from table1 WHERE Department=isnull(@Dept,Department) 

クエリは次のようになります。

select * from table1 WHERE Department=Department 

同じように1=1

+0

ありがとうございます。だから、どのようにNULLにパラメータを設定します。正しい構文は何ですか? – JFrizz

+0

ご協力ありがとうございます!あなたの答えは他のものと組み合わせてこの問題を解決するのに役立ちました。 – JFrizz

関連する問題