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

Защо NULL =NULL се оценява на false в SQL сървър

Мислете за null като за "неизвестен" в този случай (или "не съществува"). В нито един от тези случаи не можете да кажете, че са равни, защото не знаете стойността на нито един от тях. Така че null=null се оценява като невярно (false или null, в зависимост от вашата система), защото не знаете стойностите, за да кажете, че СА равни. Това поведение е дефинирано в стандарта ANSI SQL-92.

РЕДАКТИРАНЕ:Това зависи от вашата настройка ansi_nulls. ако сте изключили ANSI_NULLS, това ЩЕ се оцени като истина. Изпълнете следния код за пример...

set ansi_nulls off

if null = null
    print 'true'
else
    print 'false'


set ansi_nulls ON

if null = null
    print 'true'
else
    print 'false'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да добавите колона за идентичност към таблицата чрез TSQL и GUI в SQL Server - SQL Server / T-SQL урок, част 40

  2. Как работи COUNT_BIG() в SQL Server

  3. Преструктуриране и реорганизиране на индекса на SQL Server

  4. CURRENT_TIMESTAMP Примери в SQL Server (T-SQL)

  5. Създайте график на агент на SQL Server с T-SQL