6
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

4 回答 4

4

在oracle和sql server中,可以使用COALESCEoracle版本)功能

SELECT ...., COALESCE(WO_BreakerRail.Date, @date)
于 2010-03-24T11:51:36.077 回答
2

你可以使用COALESCE函数(去这里获取 mysql 文档)

COALESCE(WO_BreakerRail.Date, @date)

或者你可以使用一个简单的 IF:

IF(WO_BreakerRail.Date IS NULL, @date, WO_BreakerRail.Date)
于 2010-03-24T11:55:04.927 回答
0

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

于 2010-03-24T11:51:47.820 回答
0

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

select
  ifnull(wo_breakerrail.date, @date) as `date`,
于 2012-08-08T11:50:02.267 回答