我试图针对Progress OpenEdge编写IF / THEN / ELSE,并在我尝试的每次迭代中获得语法错误。我试图选择一组列并进行一些计算。一个计算分为两列,所以我试图检查除数列,以防它为零。
根据我使用的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:
我在END
之后添加THEN ColumnA
。我把完整的计算放在另一组算盘中。
我把自己置于S.O.的怜悯之下。我错过了什么?
答案 0 :(得分:0)
我在OpenEdge SQL文档中的任何地方都看不到IF / THEN / ELSE:
https://documentation.progress.com/output/OpenEdge117/openedge117/#page/dmsrf/preface.html#
或:
DO:......结束。一种语法是4gl语法 - 你不能在SQL引擎中使用它。