Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa NULL =NULL dievaluasi menjadi false di SQL server

Pikirkan null sebagai "tidak diketahui" dalam kasus itu (atau "tidak ada"). Dalam kedua kasus tersebut, Anda tidak dapat mengatakan bahwa keduanya sama, karena Anda tidak mengetahui nilai keduanya. Jadi, null=null dievaluasi menjadi tidak benar (salah atau nol, tergantung pada sistem Anda), karena Anda tidak tahu nilai untuk mengatakan bahwa mereka ADALAH sama. Perilaku ini didefinisikan dalam standar ANSI SQL-92.

EDIT:Ini tergantung pada pengaturan ansi_nulls Anda. jika Anda menonaktifkan ANSI_NULLS, ini AKAN dievaluasi menjadi true. Jalankan kode berikut sebagai contoh...

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. Bagaimana batasan kunci asing dapat dinonaktifkan sementara menggunakan T-SQL?

  2. Menghapus Profil Email Database di SQL Server (T-SQL)

  3. Cara Baru Menyalin File di SQL Server 2019

  4. Dapatkan Daftar Akun Email Database di SQL Server (T-SQL)

  5. Dapatkan AVG mengabaikan nilai Null atau Zero