Я изо всех сил пытаюсь понять, как проверить нулевое значение в выражении прогресса. Я хочу увидеть, существует ли столбец, и использовать его, если не использовать резервный столбец. Например, Уильям в имени будет перезаписан Биллом в fn.special-char.
У меня есть следующий запрос:
SELECT
"PUB"."NAME"."LAST-NAME" as LastName,
CASE fn."SPECIAL-CHAR"
WHEN is null THEN "PUB"."NAME"."FIRST-NAME"
ELSE fn."SPECIAL-CHAR"
END as FirstName
FROM "PUB"."NAME"
LEFT OUTER JOIN "PUB"."DAT-DATA" fn on "PUB"."NAME"."NAME-ID" = fn."DAT-SRC-ID" and 11 = fn."FLD-FIELD-ID"
Когда я запускаю запрос, я получаю:
Драйвер ORBC Progress OpenEdge Wire Protocol][OPENEDGE]Синтаксическая ошибка SQL-оператора в или около того "значит null, затем "PUB"."NAME"."FIRST-" (10713)
Если я делаю select *, я вижу все. Ему просто не нравится нулевая часть. Я также могу изменить значение параметра when is null на значение 'bob', и это сработает.
Есть ли что-то другое, что мне нужно сделать, чтобы использовать нулевое значение в запросе Progress db?