sql >> Databáze >  >> RDS >> Sqlserver

T-SQL není in (vyberte položku nefunguje (jak se očekává)

NOT IN nechová se podle očekávání, když seznam obsahuje NULL hodnoty.

Ve skutečnosti, pokud jsou nějaké hodnoty NULL , pak se nevrátí vůbec žádné řádky. Pamatujte:V SQL NULL znamená "neurčitou" hodnotu, nikoli "chybějící hodnotu". Pokud tedy seznam obsahuje NULL hodnotu, pak by to mohlo být rovna srovnávací hodnotě.

Takže customerid musí být NULL v orders tabulka.

Z tohoto důvodu důrazně doporučuji, abyste vždy používali NOT EXISTS s poddotazem spíše než NOT IN .



  1. Stránkování výsledků MySQL v PHP

  2. Nelze přiřadit výchozí hodnotu lokální proměnné v SQL

  3. Vrátit data před aktuálním měsícem

  4. Jak najít neexistující data z jiné tabulky pomocí JOIN?