sql >> Databáze >  >> RDS >> Oracle

Jak funguje klauzule „in“ v orákulu

Správně (ale nezapomeňte, že IN je operátor, nikoli klauzule a takto to funguje v SQL obecně, nejen pro Oracle).

where 1 not in (null,1)

je ekvivalentní:

where 1 != null and 1 != 1

který by měl být skutečně zapsán jako:

WHERE 1 NOT IN (NULL, 1)

a

WHERE 1 <> NULL AND 1 <> 1

což je stejné jako:

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

což se vyhodnotí jako:

WHERE UNKNOWN AND FALSE

a dále jako:

WHERE FALSE

Správně tedy nevrací žádné řádky.

Všimněte si, že pokud jste měli WHERE 1 NOT IN (NULL, 2) , bude to vyhodnoceno jako WHERE UNKNOWN (zanecháno jako cvičení) a nebudou vráceny žádné řádky.



  1. Připojte databázi v SQLite

  2. MySQL vs PostgreSQL pro webové aplikace

  3. Důvody, proč změnit Access Apps na webové aplikace

  4. SQL MIN() pro začátečníky