sql >> Databasteknik >  >> RDS >> Sqlserver

T-SQL inte i (välj fungerar inte (som förväntat)

NOT IN beter sig inte som förväntat när in-listan innehåller NULL värden.

Faktum är att om några värden är NULL , då returneras inga rader alls. Kom ihåg:I SQL, NULL betyder "obestämt" värde, inte "saknat värde". Så, om listan innehåller någon NULL värde då det kan vara lika med ett jämförelsevärde.

Så, customerid måste vara NULL i orders bord.

Av denna anledning rekommenderar jag starkt att du alltid använder NOT EXISTS med en underfråga istället för NOT IN .



  1. Verktyg:Generera PL/SQL-procedur för att exportera data från en tabell på 2 minuter

  2. Oracle Multiple Update Query

  3. Mysql gruppera efter veckodag, fyll i saknade veckodagar

  4. Om en PHP PDO-transaktion misslyckas, måste jag explicit rollback()?