Заменить возвращаемые нулевые значения в LEFT OUTER JOIN - PullRequest
6 голосов
/ 24 марта 2010
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

Когда это возвращается, в столбце Дата есть значения NULL, в которых нет соответствующих строк из WO_BreakerRail. Есть ли способ заменить только эти значения NULL на @date?

Ответы [ 4 ]

4 голосов
/ 24 марта 2010

В сервере Oracle и SQL вы можете использовать функцию COALESCE ( версия Oracle )

SELECT ...., COALESCE(WO_BreakerRail.Date, @date)
2 голосов
/ 24 марта 2010

Вы можете использовать функцию COALESCE (перейдите здесь для документации по MySQL)

COALESCE(WO_BreakerRail.Date, @date)

или вы можете использовать простой IF:

IF(WO_BreakerRail.Date IS NULL, @date, WO_BreakerRail.Date)
0 голосов
/ 08 августа 2012

На самом деле, в MySQL есть функция IFNULL ().

select
  ifnull(wo_breakerrail.date, @date) as `date`,
0 голосов
/ 24 марта 2010

Да, просто используйте COALESCE, например. COALESCE(WO_BreakerRail.Date, @date)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...