受け取ったパラメータがNULLだった場合はWHERE句の条件をないものとして扱い、逆にパラメータがNULLではなかった場合はそのパラメータを利用してWHERE句を用い抽出するデータに条件をかけたいですが、そういったことは実現可能でしょうか。
実現したいこと
以下のようなつの2テーブルがあったとします。
テーブルA
列1 | 列2 | 列3 |
---|---|---|
1 | あいうえお | かきくけこ |
2 | あいうえお | さしすせそ |
3 | あいうえお | たちつてと |
テーブルB
列1 | 列2 | 列3 |
---|---|---|
1 | あいうえお | かきくけこ |
2 | あいうえお | なにぬねの |
3 | あいうえお | はひふへほ |
@A = NULLだった場合に抽出したいデータ
列1 | 列2 | 列3 | 列2 |
---|---|---|---|
1 | あいうえお | かきくけこ | あいうえお |
2 | あいうえお | さしすせそ | あいうえお |
3 | あいうえお | たちつてと | あいうえお |
@A = はひふへほだった場合に抽出したいデータ
列1 | 列2 | 列3 | 列2 |
---|---|---|---|
3 | あいうえお | たちつてと | あいうえお |
上記のことを実現したいのですが、どのようにSQL文を組み立てればよいのか苦戦しています。
ISNULL関数を使うのかなと思い以下のようなSQL文を作ってみましたが、@Aを何に置き換えたらよいのか不明であるため止まってしまっています。
SELECT テーブルA.列1, テーブルA.列2, テーブルA.列3, テーブルB.列2 FROM テーブルA INNER JOIN テーブルA.列1 = テーブルB.列1 WHERE テーブルB.列3 = ISNULL(@A, ???)
知恵を貸していただけると幸いです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/27 20:29