Menulis semula operator IS DISTINCT FROM dalam SQL Server 2008R2
SQL Server 2008R2 tidak menyokong standard IS DISTINCT FROM dan IS NOT DISTINCT FROM operator. Artikel ini menyediakan penyelesaian untuk menulis semula ungkapan ini menggunakan sintaks alternatif yang serasi dengan versi perisian ini.
BERBEZA DENGAN
Predikat IS DISTINCT FROM menilai kepada Benar jika kedua-dua nilai tidak sama atau salah satu nilainya adalah NULL; Ia boleh ditulis semula seperti 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>
Contoh:
<code class="language-sql">SELECT CASE WHEN (a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL) THEN 'True' ELSE 'False' END AS DistinctResult</code>
TIDAK BERBEZA DENGAN
PengendaliTIDAK BERBEZA daripada pengendali menilai kepada Benar jika kedua-dua nilai adalah sama atau kedua-duanya adalah NULL, dan menilai kepada Salah jika ia tidak sama dan bukan kedua-duanya NULL. 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>
Contoh:
<code class="language-sql">SELECT CASE WHEN (NOT (a != b OR a IS NULL OR b IS NULL) OR (a IS NULL AND b IS NULL)) THEN 'True' ELSE 'False' END AS NotDistinctResult</code>
Nota:
Timpa yang disediakan memastikan bahawa hasilnya sentiasa Benar atau Salah, mengelakkan keadaan Tidak Diketahui yang boleh berlaku dengan operan NULL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menulis Semula ADALAH BERBEZA DARI dan TIDAK BERBEZA DARI Operator dalam SQL Server 2008R2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!