Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak działa klauzula „w” w Oracle?

Prawidłowo (ale zauważ, że IN jest operatorem, a nie klauzulą ​​i działa tak ogólnie w SQL, nie tylko w Oracle).

where 1 not in (null,1)

jest równoważne z:

where 1 != null and 1 != 1

które tak naprawdę powinno być napisane jako:

WHERE 1 NOT IN (NULL, 1)

i

WHERE 1 <> NULL AND 1 <> 1

czyli to samo co:

WHERE (1 <> NULL) AND (1 <> 1)

co oznacza:

WHERE UNKNOWN AND FALSE

i dalej jako:

WHERE FALSE

Więc poprawnie nie zwraca żadnych wierszy.

Zauważ, że jeśli masz WHERE 1 NOT IN (NULL, 2) , oszacowałoby się na WHERE UNKNOWN (pozostawiony jako ćwiczenie) i żadne wiersze również nie zostaną zwrócone.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WSTAW 10 milionów zapytań w ciągu 10 minut w Oracle?

  2. Grupuj według wartości, które są w kolejności

  3. ORA-20001 w R12 Zbierz statystyki schematu dotyczące 11g (FND_HISTOGRAM_COLS)

  4. ORA-01264:Nie można utworzyć nazwy pliku dziennika

  5. Oracle SQL:Użyj sekwencji we wstawce z instrukcją Select