Rumah >pangkalan data >tutorial mysql >Mengapa NULL = NULL Mengembalikan Palsu dalam Pelayan SQL?

Mengapa NULL = NULL Mengembalikan Palsu dalam Pelayan SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-20 23:18:10497semak imbas

Why Does NULL = NULL Return False in SQL Server?

Memahami Mengapa NULL = NULL adalah Palsu dalam SQL Server

Dalam SQL Server, keadaan klausa WHERE seperti nullParam = NULL dinilai sebagai palsu. Ini mungkin kelihatan berlawanan dengan intuisi, memandangkan NULL selalunya menandakan data yang hilang. Kuncinya ialah memahami tafsiran SQL Server tentang NULL.

NULL bukan sekadar mewakili data yang hilang; ia mewakili nilai yang tidak diketahui atau tidak wujud. Oleh itu, membandingkan dua nilai NULL sememangnya tidak tentu. Kita tidak boleh mengatakan secara pasti sama ada dua yang tidak diketahui adalah sama atau tidak sama. Ketidakpastian ini mengakibatkan penilaian palsu.

Ini sejajar dengan standard ANSI SQL-92. Secara lalai, SQL Server beroperasi dengan ANSI_NULLS ON, menguatkuasakan tingkah laku ini. Walau bagaimanapun, tetapan ANSI_NULLS OFF menukar hasil perbandingan kepada benar.

Pertimbangkan contoh ini:

<code class="language-sql">SET ANSI_NULLS OFF;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';

SET ANSI_NULLS ON;

IF NULL = NULL
    PRINT 'true';
ELSE
    PRINT 'false';</code>

Dengan ANSI_NULLS OFF, output adalah 'benar'. Dengan ANSI_NULLS ON (lalai), output adalah 'palsu', menunjukkan cara tetapan ini mengawal pengendalian SQL Server terhadap NULL perbandingan. Menggunakan IS NULL ialah pendekatan yang betul untuk menyemak nilai nol.

Atas ialah kandungan terperinci Mengapa NULL = NULL Mengembalikan Palsu dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn