Bagikan melalui


NULL dan UNKNOWN (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

NULLmenunjukkan bahwa nilai tidak diketahui. Nilai null berbeda dari nilai kosong atau nol. Tidak ada dua nilai null yang sama. Perbandingan antara dua nilai null, atau antara nilai null dan nilai lainnya, mengembalikan tidak diketahui karena nilai masing-masing NULL tidak diketahui.

Nilai null umumnya menunjukkan data yang tidak diketahui, tidak berlaku, atau akan ditambahkan nanti. Misalnya, inisial tengah pelanggan mungkin tidak diketahui pada saat pelanggan melakukan pemesanan.

Consider:

  • Untuk menguji nilai null dalam kueri, gunakan IS NULL atau IS NOT NULL dalam WHERE klausa.

  • Anda dapat menyisipkan nilai null ke dalam kolom dengan secara eksplisit menyatakan NULL dalam pernyataan INSERT atau UPDATE , atau dengan meninggalkan kolom dari INSERT pernyataan.

  • Nilai null tidak dapat digunakan sebagai informasi yang diperlukan untuk membedakan satu baris dalam tabel dari baris lain dalam tabel. Contohnya termasuk kunci primer, atau untuk informasi yang digunakan untuk mendistribusikan baris, seperti kunci distribusi.

Remarks

Ketika nilai null ada dalam data, operator logis dan perbandingan berpotensi mengembalikan hasil UNKNOWN ketiga alih-alih hanya TRUE atau FALSE. Kebutuhan untuk logika bernilai tiga ini adalah sumber dari banyak kesalahan aplikasi. Operator logis dalam ekspresi boolean yang menyertakan UNKNOWN pengembalian UNKNOWN, kecuali hasil operator tidak bergantung pada UNKNOWN ekspresi. Tabel ini menyediakan contoh perilaku ini.

Tabel berikut ini memperlihatkan hasil penerapan AND operator ke dua ekspresi Boolean di mana satu ekspresi mengembalikan UNKNOWN.

Ekspresi 1 Ekspresi 2 Result
TRUE UNKNOWN UNKNOWN
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN FALSE

Tabel berikut ini memperlihatkan hasil penerapan OR operator ke dua ekspresi Boolean di mana satu ekspresi mengembalikan UNKNOWN.

Ekspresi 1 Ekspresi 2 Result
TRUE UNKNOWN TRUE
UNKNOWN UNKNOWN UNKNOWN
FALSE UNKNOWN UNKNOWN