Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

T-SQL не е включен (изберете не работи (както се очаква)

NOT IN не се държи според очакванията, когато входящият списък съдържа NULL стойности.

Всъщност, ако има стойности NULL , тогава не се връщат никакви редове. Запомнете:В SQL, NULL означава "неопределена" стойност, а не "липсваща стойност". Така че, ако списъкът съдържа NULL стойност, тогава може да е равна на стойност за сравнение.

И така, customerid трябва да бъде NULL в orders таблица.

Поради тази причина силно препоръчвам винаги да използвате NOT EXISTS с подзаявка вместо NOT IN .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поддържа ли SQL Server клауза IS DISTINCT FROM?

  2. Запазване на байтов масив в sql сървър

  3. Операцията не е разрешена, когато обектът е затворен при изпълнение на съхранена процедура

  4. присъединете колона с данни, разделени със запетая

  5. Как да използвате един и същ график за множество задачи за агент на SQL Server (T-SQL)