Saya memiliki kueri Microsoft SQL Server 2008 yang mengembalikan data dari tiga tabel menggunakan gabungan luar kiri. Seringkali, tidak ada data di tabel kedua dan ketiga dan jadi saya mendapatkan null yang menurut saya adalah default untuk left outer join. Apakah ada cara untuk mengganti nilai default dalam pernyataan pilih? Saya memiliki solusi yang dapat saya pilih ke dalam variabel tabel tetapi rasanya agak kotor.
SELECT iar.Description, iai.Quantity, iai.Quantity * rpl.RegularPrice as 'Retail',
iar.Compliance FROM InventoryAdjustmentReason iar
LEFT OUTER JOIN InventoryAdjustmentItem iai on (iar.Id = iai.InventoryAdjustmentReasonId)
LEFT OUTER JOIN Item i on (i.Id = iai.ItemId)
LEFT OUTER JOIN ReportPriceLookup rpl on (rpl.SkuNumber = i.SkuNo)
WHERE iar.StoreUse = 'yes'
Saya ingin Kuantitas dan Harga Reguler menjadi nol jika memungkinkan.
mysql
sql
sql-server
tsql
sql-server-2008
Brett Bim
sumber
sumber
Jawaban:
Semudah itu
Atau lebih lengkapnya:
sumber
IFNULL
.Dalam kasus
MySQL
atauSQLite
kata kunci yang benar adalahIFNULL
(tidakISNULL
).sumber
MySQL
Sebagai contoh:
Selain itu, Anda dapat menggunakan beberapa kolom untuk memeriksanya
NULL
dengan fungsi COALESCE . Sebagai contoh:sumber