回答編集履歴

3

参考資料を添付しました。

2023/07/22 14:40

投稿

CO_TOBU
CO_TOBU

スコア7

test CHANGED
@@ -25,3 +25,12 @@
25
25
  リスクと保守運用を考慮して
26
26
  どちらを選択するかを検討すれば
27
27
  一概にどちらが正解でどちらが誤りだと判断することは難しいのだと考えられます。
28
+ 参考資料:
29
+ https://oreno-it.info/archives/1953
30
+ 否定形のSQLのチューニング方法
31
+ 例えば、empテーブルのbusyo_cdが10,20,30,40,50,nullのとき、null以外のデータを取得する場合です。
32
+ ・否定形の場合
33
+  select * from emp where busyo_cd is not null;
34
+ ・否定系をやめた場合
35
+  select * from emp where busyo_cd in (10,20,30,40,50)
36
+

2

説明不足分を補足しました。

2023/07/16 10:57

投稿

CO_TOBU
CO_TOBU

スコア7

test CHANGED
@@ -2,6 +2,9 @@
2
2
  つまり、カラム=条件値でis not nullは成立しているのでわざわざ カラム is not nullする必要はありません。
3
3
  結果的に、カラム=nullは全件検索になるとも
4
4
  言えるということになります。
5
+ つまり、if文などでの制御も不要です。
6
+ なんにもしなくても
7
+ カラム=nullなら全件、カラム=nullでない値なら検索するという命令が成立しています。
5
8
 
6
9
  たとえば
7
10
  (1)where in (select カラム from テーブル名)  

1

カラム=nullは無視され、全件検索したことと同じ意味。

2023/07/15 23:07

投稿

CO_TOBU
CO_TOBU

スコア7

test CHANGED
@@ -1,5 +1,7 @@
1
1
  where句では、カラム=nullは検索対象外になります。
2
2
  つまり、カラム=条件値でis not nullは成立しているのでわざわざ カラム is not nullする必要はありません。
3
+ 結果的に、カラム=nullは全件検索になるとも
4
+ 言えるということになります。
3
5
 
4
6
  たとえば
5
7
  (1)where in (select カラム from テーブル名)