
お世話になります。
以下の環境で開発を行っています。
言語:C#(.NET 2008)
DB: SQL Server 2008
C#で作成した画面にて入力された値をパラメータで
ストアドプロシージャに渡し、その値がNULLでない場合だけ
WHERE句にレコード絞り込み条件を与えるSQL文を
考えているのですが、記述方法がわかりません。
(プロシージャ)
---------------------------------------------
DECLARE
@param1 = '' -- 画面から渡されるパラメータ1
@param2 = '' -- 画面から渡されるパラメータ2
SELECT * FROM TABLE1 A, TABLE2 B -- (1)
IF @param1 IS NOT NULL AND @param2 IS NOT NULL -- ここから
WHERE A.COLUMN1 = @param1
AND A.COLUMN2 = @param2
ELSE IF @param1 IS NOT NULL AND @param2 IS NULL
WHERE A.COLUMN1 = @param1
ELSE IF @param1 IS NULL AND @param2 IS NOT NULL
WHERE A.COLUMN2 = @param2 -- ここまで (2)
AND A.COLUMN1 = B.COLUMN1 -- (3)
AND A.COLUMN2 = B.COLUMN2 -- (4)
------------------------------------------------
上記の(1)から(4)までをうまく1つにまとめたかたちで記述することができません。
特に上記(2)の効率のよい正しい記述方法がわかりません。
どなたかご教授願えますか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Outlook 送受信エラー
-
エクセルで個人用マクロの配布方法
-
速度が低下し無効になったアド...
-
Excel再起動でアドインのタブが...
-
excel2013 MonthDays 関数が使...
-
広告ブロッカーのアドカードと...
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
SQLで特定の項目の重複のみを排...
-
for whichの使い方
-
外部参照してるキーを主キーに...
-
UPDATE文のWHERE条件に他のテー...
-
エクセルで最後の文字だけ置き...
-
1日に1人がこなせるプログラム...
-
INSERT文でフィールドの1つだ...
-
datetime型でNULL値を入れたい。
-
LEFT JOIN と GROUP BY
-
DB設計について
-
SQL Left Join で重複を排除す...
-
ビュー情報(user_views)の参...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlook 送受信エラー
-
エクセルで個人用マクロの配布方法
-
エクセルのxans.について
-
速度が低下し無効になったアド...
-
Excel再起動でアドインのタブが...
-
広告ブロッカーのアドカードと...
-
ストアド内で動的にSQLを作る際...
-
excel 複数のアドインソフトの...
-
アドインの削除
-
Word2007でアドインタブが表示...
-
携帯のアドレス変更の時に・・・
-
パワーポイントのアドインのソ...
-
ストアドから得られるレコード...
-
Excelから自作アドインを完全に...
-
複数アドインプログラムをひと...
-
ストアドでの値のとり方について
-
エクセルでアドイン
-
ストアドプロシージャのネスト
-
MySQLのストアドプロシージャー...
-
ストアドプロシージャの変数に...
おすすめ情報