Eu tenho uma consulta do Microsoft SQL Server 2008 que retorna dados de três tabelas usando uma junção externa esquerda. Muitas vezes, não há dados na segunda e na terceira tabelas e, portanto, obtenho um nulo que acho que é o padrão para a junção externa esquerda. Existe uma maneira de substituir os valores padrão na instrução select? Eu tenho uma solução em que posso selecionar uma variável de tabela, mas parece um pouco sujo.
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'
Gostaria que a Quantidade e o Preço Regular fossem zero, se possível.
mysql
sql
sql-server
tsql
sql-server-2008
Brett Bim
fonte
fonte
Respostas:
É tão fácil quanto
Ou mais completamente:
fonte
IFNULL
.No caso de
MySQL
ouSQLite
a palavra-chave correta éIFNULL
(nãoISNULL
).fonte
MySQL
Por exemplo:
Além disso, você pode usar várias colunas para verificar a sua
NULL
por COALESCE função. Por exemplo:fonte