我很难理解如何在进度CASE表达式中检查空值。我想查看列是否存在并使用它,如果不存在则使用备用列。例如,名字中的威廉将被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语句在或约“is null then “PUB”。”NAME“。”FIRST-”(10713)如果我执行select *,我可以看到所有内容。只是不喜欢null部分。我也可以将“when is null”更改为“when' bob'”,它可以工作。
使用进展数据库查询中的null值需要进行不同的操作吗?