ISNULL (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengganti NULL dengan nilai pengganti yang ditentukan.

Konvensi sintaks transact-SQL

Sintaksis

ISNULL ( check_expression , replacement_value )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

check_expression
Adalah ekspresi yang akan diperiksa untuk NULL. check_expression bisa dari jenis apa pun.

replacement_value
Adalah ekspresi yang akan dikembalikan jika check_expression NULL. replacement_value harus dari jenis yang secara implisit dapat dikonversi ke jenis check_expression.

Jenis Kembalian

Mengembalikan jenis yang sama dengan check_expression. Jika NULL harfiah disediakan sebagai check_expression, mengembalikan jenis data replacement_value. Jika NULL harfiah disediakan sebagai check_expression dan tidak ada replacement_value yang disediakan, mengembalikan int.

Keterangan

Nilai check_expression dikembalikan jika bukan NULL; jika tidak, replacement_value dikembalikan setelah dikonversi secara implisit ke jenis check_expression, jika jenisnya berbeda. replacement_value dapat dipotong jika replacement_value lebih panjang dari check_expression.

Catatan

Gunakan COALESCE (Transact-SQL) untuk mengembalikan nilai non-null pertama.

Contoh

J. Menggunakan ISNULL dengan AVG

Contoh berikut menemukan rata-rata berat semua produk. Ini menggantikan nilai 50 untuk semua entri NULL di Weight kolom Product tabel.

USE AdventureWorks2022;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

Berikut adalah hasil yang ditetapkan.

-------------------------- 
59.79  
 
(1 row(s) affected)

B. Menggunakan ISNULL

Contoh berikut memilih deskripsi, persentase diskon, kuantitas minimum, dan jumlah maksimum untuk semua penawaran khusus di AdventureWorks2022. Jika kuantitas maksimum untuk penawaran khusus tertentu adalah NULL, yang MaxQty ditunjukkan dalam tataan hasil adalah 0.00.

USE AdventureWorks2022;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

Berikut adalah hasil yang ditetapkan.

Deskripsi DiskonPct MinQty Kuantitas Maks
Tidak Ada Diskon 0.00 0 0
Diskon Volume 0,02 11 14
Diskon Volume 0,05 15 4
Diskon Volume 0.10 25 0
Diskon Volume 0,15 41 0
Diskon Volume 0.20 61 0
Gunung-100 Cl 0,35 0 0
Sport Helmet Di 0.10 0 0
Jalan-650 Overst 0,30 0 0
Ban Gunung S 0.50 0 0
Sport Helmet Di 0,15 0 0
LL Road Frame S 0,35 0 0
Touring-3000 Pr 0,15 0 0
Touring-1000 Pr 0.20 0 0
Peda Setengah Harga 0.50 0 0
Gunung-500 Si 0,40 0 0

(16 row(s) affected)

C. Pengujian untuk NULL dalam klausa WHERE

Jangan gunakan ISNULL untuk menemukan nilai NULL. Gunakan IS NULL sebagai gantinya. Contoh berikut menemukan semua produk yang ada NULL di kolom berat. Perhatikan spasi antara IS dan NULL.

USE AdventureWorks2022;  
GO  
SELECT Name, Weight  
FROM Production.Product  
WHERE Weight IS NULL;  
GO  

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Menggunakan ISNULL dengan AVG

Contoh berikut menemukan rata-rata berat semua produk dalam tabel sampel. Ini menggantikan nilai 50 untuk semua entri NULL di Weight kolom Product tabel.

-- Uses AdventureWorks  
  
SELECT AVG(ISNULL(Weight, 50))  
FROM dbo.DimProduct;  

Berikut adalah hasil yang ditetapkan.

--------------------------   
52.88   

E. Menggunakan ISNULL

Contoh berikut menggunakan ISNULL untuk menguji nilai NULL di kolom MinPaymentAmount dan menampilkan nilai 0.00 untuk baris tersebut.

-- Uses AdventureWorks  
  
SELECT ResellerName,   
       ISNULL(MinPaymentAmount,0) AS MinimumPayment  
FROM dbo.DimReseller  
ORDER BY ResellerName;  
  

Berikut adalah kumpulan hasil parsial.

ResellerName MinimumPayment
Asosiasi Sepeda 0.0000
Toko Sepeda 0.0000
Toko Siklus 0.0000
Perusahaan Sepeda Yang Hebat 0.0000
Toko Sepeda Biasa 200.0000
Penjualan & Layanan yang Dapat Diterima 0.0000

F. Menggunakan IS NULL untuk menguji NULL dalam klausa WHERE

Contoh berikut menemukan semua produk yang ada NULL di Weight kolom . Perhatikan spasi antara IS dan NULL.

-- Uses AdventureWorks  
  
SELECT EnglishProductName, Weight  
FROM dbo.DimProduct  
WHERE Weight IS NULL;  

Lihat Juga

Ekspresi (Transact-SQL)
IS NULL (Transact-SQL)
Fungsi Sistem (Transact-SQL)
WHERE (Transact-SQL)
COALESCE (Transact-SQL)