0

我有一个奇怪的 Oracle 查询问题。问题是我真的是一名 MS SQL 开发人员。

这是一段相当大的 SQL,但是当它以这个结尾时:

WHERE     RLTEST.D550M.PERSON_REF = '00027280';

一切正常。

当它结束时:

WHERE     RLTEST.D550M.PERSON_REF = '00027280'
AND       RLTEST.D580M.PROJECTED_END_DATE <= SYSDATE();

我明白了ORA-00933: SQL command not properly ended

当它结束时:

WHERE     RLTEST.D550M.PERSON_REF = '00027280'
AND       NVL(RLTEST.D580M.PROJECTED_END_DATE, SYSDATE()-1) <= SYSDATE();

我明白了ORA-00907: missing right parenthesis

我需要做什么才能添加日期比较?

谢谢...

4

2 回答 2

2

您不需要额外的括号 - 从 sysdate 之后删除“()”。

于 2012-07-19T14:02:47.280 回答
1

Oracle 有一个伪列的概念,sysdate 就是其中之一,因此您应该在引用它后立即删除括号/大括号。

有关伪列的更多信息可在此处获得

于 2012-07-19T14:09:29.370 回答