在LEFT OUTER JOIN中替换返回的空值

时间:2010-03-24 11:45:46

标签: sql join null outer-join

SELECT        WO_BreakerRail.ID, indRailType.RailType, indRailType.RailCode, WO_BreakerRail.CreatedPieces, WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged, WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop, WO_BreakerRail.Date
FROM            indRailType LEFT OUTER JOIN
                         WO_BreakerRail ON indRailType.RailCode = WO_BreakerRail.RailCode AND WO_BreakerRail.Date = @date

当返回时,Date列中有NULL值,其中没有来自WO_BreakerRail的匹配行。有没有办法用@date替换那些NULL值?

4 个答案:

答案 0 :(得分:4)

在oracle和sql server中,您可以使用COALESCEoracle version)函数

SELECT ...., COALESCE(WO_BreakerRail.Date, @date)

答案 1 :(得分:2)

您可以使用COALESCE函数(转到here获取mysql文档)

COALESCE(WO_BreakerRail.Date, @date)

或者您可以使用简单的IF:

IF(WO_BreakerRail.Date IS NULL, @date, WO_BreakerRail.Date)

答案 2 :(得分:0)

是的,只需使用COALESCE,例如。 COALESCE(WO_BreakerRail.Date, @date)

答案 3 :(得分:0)

实际上,在MySQL中有一个IFNULL()函数。

select
  ifnull(wo_breakerrail.date, @date) as `date`,