У меня есть запрос Microsoft SQL Server 2008, который возвращает данные из трех таблиц с использованием левого внешнего соединения. Часто во второй и третьей таблицах нет данных, поэтому я получаю значение null, которое, как мне кажется, является значением по умолчанию для левого внешнего соединения. Есть ли способ заменить значения по умолчанию в операторе выбора? У меня есть обходной путь: я могу выбрать переменную таблицы, но она кажется немного грязной.
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'
Я бы хотел, чтобы Quantity и RegularPrice по умолчанию были равны нулю, если это возможно.
mysql
sql
sql-server
tsql
sql-server-2008
Бретт Бим
источник
источник
Ответы:
Это так просто, как
Или более полно:
источник
IFNULL
.В случае
MySQL
илиSQLite
правильное ключевое словоIFNULL
(notISNULL
).источник
MySQL
Например:
Кроме того , вы можете использовать несколько столбцов , чтобы проверить их
NULL
на COALESCE функцию. Например:источник