sql >> Database >  >> RDS >> Oracle

Hoe werkt de 'in'-clausule in orakel

Correct (maar merk op dat IN is een operator, geen clausule en het werkt zo in SQL in het algemeen, niet alleen voor Oracle).

where 1 not in (null,1)

is gelijk aan:

where 1 != null and 1 != 1

die eigenlijk zou moeten worden geschreven als:

WHERE 1 NOT IN (NULL, 1)

en

WHERE 1 <> NULL AND 1 <> 1

wat hetzelfde is als:

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

wat resulteert in:

WHERE UNKNOWN AND FALSE

en verder als:

WHERE FALSE

Het retourneert dus correct geen rijen.

Merk op dat als u WHERE 1 NOT IN (NULL, 2) . had , zou het resulteren in WHERE UNKNOWN (links als oefening) en er worden ook geen rijen geretourneerd.



  1. Hoe weeknummer in sql . te extraheren

  2. Hoe de CONCAT()-functie werkt in PostgreSQL

  3. Standaard rijvolgorde voor selectiequery in oracle

  4. Oracle-client en netwerkcomponenten zijn niet gevonden