使用左外部联接+语法时发生ORA 00936错误

ag1*_*112 2 sql oracle left-join ora-00936

我有两个表:T1和T2

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

我想让外部连接T1和T2具有连接条件:

trunc(CT1,'Mi')=trunc(CT2,'Mi')(+)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此SQL时,收到错误ORA 00936:缺少表达式。

知道这里有什么问题吗?

Dav*_*sta 5

我认为您需要将(+)运算符立即放在其适用的列名之后。

trunc(CT1,'Mi')=trunc(CT2 (+),'Mi')
Run Code Online (Sandbox Code Playgroud)

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

无论如何,我建议使用ANSI语法。它更清晰,功能更强大且可移植。