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.
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)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk