我的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
答案 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
。