2

我有两张桌子:T1 和 T2

  • T1 有一个 DATE 列:CT1
  • T2 有一个 DATE 列:CT2

我想用连接条件离开外部连接 T1 和 T2:

trunc(CT1,'Mi')=trunc(CT2,'Mi')(+)

当我尝试运行此 SQL 时,我收到错误 ORA 00936:missing expression。

知道这里有什么问题吗?

4

2 回答 2

5

我认为您需要将(+)运算符紧跟在它适用的列名之后。

trunc(CT1,'Mi')=trunc(CT2 (+),'Mi')

“(+) 运算符只能应用于列,不能应用于任意表达式。但是,任意表达式可以包含一个或多个标有 (+) 运算符的列。” (来自http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm

无论如何,我建议使用 ANSI 语法。它更清晰、更实用、更便携。

于 2011-06-25T13:16:25.967 回答
2

尝试使用 ANSI 语法:

T1 LEFT OUTER JOIN T2 ON TRUNC(CT1,'Mi')=TRUNC(CT2,'Mi')

(+) 外连接语法有一些限制,这可能是其中之一。当然,如果您更改此连接,则必须全部更改 - 您不能将两者混合使用。

于 2011-06-25T05:40:16.450 回答