-2

我的 where 子句中有这个问题,sql 告诉我这是无效的 sql 语句。行名是日期时间。我的 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
4

1 回答 1

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

于 2013-06-21T02:27:49.323 回答