Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Titik akhir analitik SQL di Microsoft Fabric
Gudang di Microsoft Fabric
Database SQL di Microsoft Fabric
NULL Mengganti dengan nilai pengganti yang ditentukan.
Sintaks
ISNULL ( check_expression , replacement_value )
Argumen
check_expression
Ekspresi yang akan diperiksa untuk NULL.
check_expression bisa dari jenis apa pun.
replacement_value
Ekspresi yang akan dikembalikan jika check_expression adalah NULL.
replacement_value harus dari jenis yang secara implisit dapat dikonversi ke jenis check_expression.
Jenis yang dikembalikan
Mengembalikan jenis yang sama dengan check_expression. Jika literal NULL disediakan sebagai check_expression, ISNULL mengembalikan jenis data replacement_value. Jika harfiah NULL disediakan sebagai check_expression dan tidak ada replacement_value yang disediakan, ISNULL 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 untuk mengembalikan nilai non-null pertama.
Contoh
Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.
J. Menggunakan ISNULL dengan AVG
Contoh berikut menemukan rata-rata berat semua produk. Ini menggantikan nilai 50 untuk semua NULL entri di Weight kolom Product tabel.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
Berikut set hasilnya.
59.79
B. Gunakan ISNULL
Contoh berikut memilih deskripsi, persentase diskon, kuantitas minimum, dan jumlah maksimum untuk semua penawaran khusus di AdventureWorks2025. 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 set hasilnya.
| Deskripsi | DiskonPct | MinQty | Kuantitas Maks |
|---|---|---|---|
No Discount |
0.00 | 0 | 0 |
Volume Discount 11 to 14 |
0,02 | 11 | 14 |
Volume Discount 15 to 24 |
0,05 | 15 | 24 |
Volume Discount 25 to 40 |
0.10 | 25 | 40 |
Volume Discount 41 to 60 |
0,15 | 41 | 60 |
Volume Discount over 60 |
0.20 | 61 | 0 |
Mountain-100 Clearance Sale |
0,35 | 0 | 0 |
Sport Helmet Discount-2002 |
0.10 | 0 | 0 |
Road-650 Overstock |
0,30 | 0 | 0 |
Mountain Tire Sale |
0.50 | 0 | 0 |
Sport Helmet Discount-2003 |
0,15 | 0 | 0 |
LL Road Frame Sale |
0,35 | 0 | 0 |
Touring-3000 Promotion |
0,15 | 0 | 0 |
Touring-1000 Promotion |
0.20 | 0 | 0 |
Half-Price Pedal Sale |
0.50 | 0 | 0 |
Mountain-500 Silver Clearance Sale |
0,40 | 0 | 0 |
Contoh berikut menggunakan ISNULL untuk mengganti NULL nilai untuk Color, dengan string None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
Berikut adalah hasil parsial yang ditetapkan.
| ProductID | Nama | ProductNumber | Warna |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | Tidak |
| 2 | Bearing Ball |
BA-8327 | Tidak |
| 3 | BB Ball Bearing |
BE-2349 | Tidak |
| 4 | Headset Ball Bearings |
BE-2908 | Tidak |
| 316 | Blade |
BL-2036 | Tidak |
| 317 | LL Crankarm |
CA-5965 | Hitam |
| 318 | ML Crankarm |
CA-6738 | Hitam |
| 319 | HL Crankarm |
CA-7457 | Hitam |
C. Uji untuk NULL dalam klausa WHERE
Jangan gunakan ISNULL untuk menemukan NULL nilai. 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 NULL entri di Weight kolom Product tabel.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
Berikut set hasilnya.
52.88
E. Gunakan ISNULL
Contoh berikut menggunakan ISNULL untuk NULL menguji nilai 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 hasil parsial yang ditetapkan.
| 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. Gunakan 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 AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;