左外部結合を使用して3つのテーブルからデータを返すMicrosoft SQL Server 2008クエリがあります。何度も、2番目と3番目のテーブルにデータが存在しないので、私は左外部結合のデフォルトであると考えるnullを取得します。 select文のデフォルト値を置き換える方法はありますか?テーブル変数を選択できるという回避策がありますが、少し汚れているようです。左外部から返された既定の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のデフォルト値は0です。
私はそれが簡単でなければならないと知っていましたが、なんらかの理由で、私はそれをどうやってやるのかブロックされました。ありがとう。 –
MySQLの場合は、IsNullを 'IFNULL'に置き換える必要があります。ありがとう。 – Dhanushka
PostgreSQLでは、["COALESCE"](http://www.postgresql.org/docs/9.3/static/functions-conditional.html)のようです。 MySQLのマニュアルページは、["IFNULL"](http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html)です。標準についてはわからない –