如何在oracle和mysql中解决这个错误

时间:2013-06-21 02:22:38

标签: mysql oracle

我的where子句中有这个问题,sql告诉这是无效的sql语句。 rowname是日期时间。我的if语句出了点问题我无法弄明白。希望你们能帮助我...谢谢

注意:我设法在更清晰的版本中更改我的代码希望你们可以帮助我(我在两个表中有一个选择查询)

,其中

                last_update_date between

                    IF  tbl1.last_update_date is not null

                    THEN

                        max(tbl1.last_update_date)

                    ELSE

                        min(tbl2.last_update_date)

                    END IF;

                and 
                    sysdate

1 个答案:

答案 0 :(得分:0)

If不是select语句语法的一部分。它是更高层次语言的一部分。因此,您不能将其包含在where语句中。你想要这样的东西:

WHERE rowname >= coalesce((select max(rowname) from tbl1), (select min(rowname) from tbl2), rowname)) and
                 sysdate

此外,sysdate是Oracle定义。 MySQL通常会使用now()。它们都可能支持ANSI标准CURRENT_TIMESTAMP