Myślałem, że NOT IN
zachowuje się tak samo jak !=
w zapytaniu. Ale zapytania przy użyciu !=
zwraca więcej wierszy niż kwerendy przy użyciu NOT IN
:Różnica między NOT IN a NOT EQUALS inne zachowanie w zapytaniu SQL
SELECT count(A.NO)
FROM A
WHERE
A.CODE != 'a'
AND
A.CODE != 'b'
AND
A.CODE != 'c'
AND
A.NAME != 'd'
AND
A.NAME != 'e'
powroty 1566 wierszy, natomiast
SELECT count(A.NO)
FROM A
WHERE
A.CODE NOT IN ('a','b','c')
AND
A.NAME NOT IN ('d','e')
zwraca tylko 1200 wierszy.
Przypuszczam, że NOT IN
wyklucza wartości NULL
- czy to byłaby jedyna różnica?
można dostarczyć nam pewnych danych demonstracyjnych – Akash
Jeśli A.CODE lub A.NAME ma wartość NULL, jego zbyt ignorowane w klauzuli WHERE – Akash
Najprostszym sposobem, aby odpowiedzieć na pytanie, czy aby wydrukować 366 wiersze, które są w pierwszym zapytaniu, ale nie w drugim. Sprawdź wartości dla A.CODE i A.NAME. – byteherder