Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao NULL =NULL đánh giá thành false trong máy chủ SQL

Hãy coi giá trị rỗng là "không xác định" trong trường hợp đó (hoặc "không tồn tại"). Trong một trong hai trường hợp đó, bạn không thể nói rằng chúng bằng nhau, bởi vì bạn không biết giá trị của một trong hai. Vì vậy, null =null đánh giá là không đúng (sai hoặc null, tùy thuộc vào hệ thống của bạn), bởi vì bạn không biết các giá trị để nói rằng chúng là bằng nhau. Hành vi này được định nghĩa trong tiêu chuẩn ANSI SQL-92.

CHỈNH SỬA:Điều này phụ thuộc vào cài đặt ansi_nulls của bạn. nếu bạn tắt ANSI_NULLS, điều này SẼ đánh giá thành true. Chạy đoạn mã sau để làm ví dụ ...

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. Cách tạo khóa chính trong SQL Server (Ví dụ T-SQL)

  2. Tổng quan về nén dữ liệu trong SQL Server

  3. Khắc phục “Lỗi tràn số học khi chuyển đổi IDENTITY thành kiểu dữ liệu…” trong SQL Server

  4. Tạo bảng trong SQL Server 2017

  5. Làm cách nào để so sánh thời gian trong SQL Server?