sql >> Database >  >> RDS >> Sqlserver

T-SQL niet in (selecteer werkt niet (zoals verwacht)

NOT IN gedraagt ​​zich niet zoals verwacht wanneer de in-lijst NULL . bevat waarden.

In feite, als er waarden NULL zijn , dan worden er helemaal geen rijen geretourneerd. Onthoud:In SQL, NULL betekent "onbepaalde" waarde, niet "ontbrekende waarde". Dus als de lijst NULL . bevat waarde, dan misschien gelijk zijn aan een vergelijkingswaarde.

Dus, customerid moet NULL zijn in de orders tafel.

Om deze reden raad ik u ten zeerste aan om altijd NOT EXISTS . te gebruiken met een subquery in plaats van NOT IN .



  1. Regex str_replace

  2. Kan het Postgres-gegevenstype NUMERIC ondertekende waarden opslaan?

  3. Postgresql ltree-query om ouder te vinden met de meeste kinderen; exclusief root

  4. mysql naar csv zonder INTO OUTFILE van mysql . te gebruiken