Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menulis Semula IS DISTINCT FROM dan TIDAK DISTINCT FROM dalam SQL Server 2008R2?
Tulis Semula ADALAH BERBEZA DAN TIDAK BERBEZA DARI dalam SQL Server 2008R2
Soalan:
Bagaimanakah anda menulis semula ungkapan yang mengandungi operator IS DISTINCT FROM dan IS NOT DISTINCT FROM dalam Microsoft SQL Server 2008R2 (yang tidak menyokong IS DISTINCT FROM dan IS NOT DISTINCT FROM operator)?
Jawapan:
BERBEZA DENGAN
BERBEZA DARI predikat menjamin hasil binari (benar atau salah) apabila membandingkan dua nilai. Untuk SQL Server 2008R2, predikat ini boleh disimulasikan menggunakan ungkapan berikut:
<code class="language-sql">((a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))</code>
TIDAK BERBEZA DENGAN
Begitu juga, TIDAK BERBEZA DARIPADA menyemak sama ada terdapat perbezaan yang ketara antara dua nilai. Ia boleh ditulis semula sebagai:
<code class="language-sql">(NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL))</code>
Perbandingan dengan jawapan yang salah
Jawapan salah yang diberikan gagal mengambil kira penilaian nilai NULL dalam ungkapan Boolean. Sebagai contoh, NULL IS DISTINCT FROM NULL harus dinilai kepada False, tetapi ungkapan yang salah menghasilkan Unknown.
Atas ialah kandungan terperinci Bagaimana untuk Menulis Semula IS DISTINCT FROM dan TIDAK DISTINCT FROM dalam SQL Server 2008R2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!