IF THEN 导致语法 [OPENEDGE] 语法错误 (10713)

IF THEN causing syntax [OPENEDGE]Syntax error (10713)

我正在尝试针对 Progress OpenEdge 编写 IF/THEN/ELSE,但在我尝试的每次迭代中都出现语法错误。我正在尝试 select 一组列并进行一些计算。一个计算除以两列,所以我试图检查除数列以防它为零。

我收到以下错误,声明中不喜欢的内容略有不同,具体取决于我使用的 IF/THEN 的变体。

ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE] 
Syntax error in SQL statement at or about "= 0 THEN ColumnA ELSE (ColumnA " (10713)

这是我当前的迭代(重命名列以保护无辜者。;)

, IF ColumnA = 0 THEN ColumnA 
    ELSE (ColumnA - ColumnB) / ColumnB
    END as ProfitMargin

我从别名列 (POS.ColumnA & POS.ColumnB) 开始,然后在某处读到完全限定的列可能会导致问题,所以我放弃了别名。

我试过了IF POS.ColumnA = 0 THEN 0。我也试过输入 ELSE DO: 我在 THEN ColumnA 后面放了一个 END。我已经将完整的计算放在另一组括号中。

我任由 S.O 摆布。我错过了什么?

我在 OpenEdge SQL 文档中的任何地方都没有看到 IF/THEN/ELSE:

https://documentation.progress.com/output/OpenEdge117/openedge117/#page/dmsrf/preface.html#

或:

https://documentation.progress.com/output/OpenEdge117/openedge117/#page/dmsrf%2Fsearch-condition.html%23

做:...结束。某种语法是 4gl 语法——你不能在 SQL 引擎中使用它。