ISNULL (T-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Mengganti NULL dengan nilai pengganti yang ditentukan.
Sintaks
ISNULL ( check_expression , replacement_value )
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan 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 berjenis 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
A. 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 AdventureWorks2012;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Berikut adalah tataan hasil.
--------------------------
59.79
(1 row(s) affected)
B. Menggunakan ISNULL
Contoh berikut memilih deskripsi, persentase diskon, kuantitas minimum, dan kuantitas maksimum untuk semua penawaran khusus di AdventureWorks2012. Jika kuantitas maksimum untuk penawaran khusus tertentu adalah NULL, yang MaxQty ditunjukkan dalam tataan hasil adalah 0.00.
USE AdventureWorks2012;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
Berikut adalah hasil yang ditetapkan.
| Deskripsi | DiscountPct | 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 |
| Half-Price Peda | 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 ruang antara IS dan NULL.
USE AdventureWorks2012;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
Contoh: Azure Synapse Analytics dan 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 tataan hasil parsial.
| ResellerName | MinimumPayment |
|---|---|
| Asosiasi Sepeda | 0.0000 |
| Toko Sepeda | 0.0000 |
| Toko Siklus | 0.0000 |
| Perusahaan Sepeda Yang Hebat | 0.0000 |
| Toko Sepeda Khas | 200.0000 |
| Layanan Penjualan & 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 ruang 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)
