• 締切済み

SQLのWHERE句を条件によって追加したい

SQLのWHERE句にパラメータで渡された値がnullでない場合は条件に 含めるようにしたいのですが、書き方が分かりません。 CASEを使って書いてもエラーになってしまいます。 SELECT 項目1 ,項目2 FROM テーブル WHERE 条件1 = パラメータ1 AND 条件2 = パラメータ2 -- パラメータ3がnullでない場合は下記条件を付けたい AND 条件3 = パラメータ3 使っているのはpostgresqlです。 よろしくお願いします。

みんなの回答

  • mgjgxgww
  • ベストアンサー率25% (5/20)
回答No.4

条件1 = パラメータ1 and 条件2 = パラメータ2 and (条件3 is null or 条件3 = nval(パラメータ3,tako)) さてさて

kinka2000
質問者

お礼

ありがとうございました。 結果として違う方法になりましたができました。

  • agehage
  • ベストアンサー率22% (2752/12072)
回答No.3

さらに間違えてる 下のカッコは パラメータ3!=null and です

kinka2000
質問者

お礼

ありがとうございました。 結果として違う方法になりましたができました。

  • agehage
  • ベストアンサー率22% (2752/12072)
回答No.2

間違えた 最初のカッコの中にパラメータ3=null もいれて

  • agehage
  • ベストアンサー率22% (2752/12072)
回答No.1

カッコつけてorでいけるでしょう where ( 条件1=パラメータ1 and 条件2=パラメータ2 ) or ( 条件1=パラメータ1 and 条件2=パラメータ2 and パラメータ3=null and 条件3=パラメータ3 )