Pervasive v11: удалить необязательный параметр в предложении where
Я использую Pervasive V11. В следующем запросе у меня есть необязательный параметр ModelYear. Я хотел бы исключить его запуск в предложении WHERE, когда он передается как NULL.
SELECT Year,Make,Style,Model,Color1,VIN
FROM
Vehicles
WHERE
(VIN ='{VIN}') AND (xyz = '{xyz}') AND
(COALESCE(NULLIF('{ModelYear}', ''), Year))
1 ответ
Вы можете попробовать:
SELECT
Year,Make,Style,Model,Color1,VIN
FROM
Vehicles
WHERE
(VIN ='{VIN}') AND
(xyz = '{xyz}') AND
(ISNULL('{ModelYear}','') = Year END)
Из документов:
ISNULL (exp, value): заменяет NULL на значение, указанное для value. Exp — это выражение для проверки на NULL. Значение — это возвращаемое значение, если exp равно NULL. Exp возвращается, если оно не равно NULL. Тип данных значения должен быть совместим с типом данных exp.
NULLIF (exp1, exp2): NULLIF возвращает exp1, если два выражения не эквивалентны. Если выражения эквивалентны, NULLIF возвращает значение NULL.