• 締切済み

OR と IN の違い

いつもお世話になります。 SQLについて質問です。 以下の2つのSQLがあります。同じ結果が得られると思ったのですが、 結果がまたくことなりました。何故か理由を教えて下さい。 (1) SELECT count(*) FROM uriage WHERE subsystem_cd = 'ABC' AND store_name = 'MISAWA' AND opend_dt = 20061130 or opten_dt = 19000101 AND id <> 108 AND begin_dt <= 20061122 (2) SELECT count(*) FROM uriage WHERE subsystem_cd = 'ABC' AND store_name = 'MISAWA' AND opend_dt in (20061130,19000101) AND id <> 108 AND begin_dt <= 20061122 ※(1)のorのところを1つずつにして実行(SQL文を2つ作成)し、その結果を合計すると(2)の結果と同等になります。

みんなの回答

  • o84
  • ベストアンサー率31% (128/407)
回答No.1

同じ結果にしたかったら、 (1)を以下のように変更します。 AND opend_dt = 20061130 or opten_dt = 19000101     ↓↓ AND ( opend_dt = 20061130 or opten_dt = 19000101 )

関連するQ&A