在Oracle SQL中,有一个(+)=运算符,用于添加等于。
我一直在在线搜索,但是找不到与PostgreSQL语法等效的表达式,该运算符在PostgreSQL中存在吗?如果没有,我将如何实现相同的功能?
先感谢您。
OUTER JOIN在PostgreSQL中有记录。
《Oracle SQL参考》中也对此进行了说明,其中指出:
Oracle建议您使用FROM子句OUTER JOIN语法而不是Oracle join运算符。使用Oracle连接运算符(+)的外部连接查询受以下规则和限制的约束,这些规则和限制不适用于FROM子句的OUTER JOIN语法:
您不能在还包含FROM子句联接语法的查询块中指定(+)运算符。
(+)运算符只能出现在WHERE子句中,或者在FROM子句的左相关(指定TABLE子句时)的上下文中出现,并且只能应用于表或视图的列。
如果A和B通过多个联接条件联接,则必须在所有这些条件中使用(+)运算符。如果不这样做,那么Oracle数据库将仅返回由简单联接产生的行,而不会发出警告或错误来通知您没有外部联接的结果。
如果在外部查询中指定一个表,而在内部查询中指定另一个表,则(+)运算符不会产生外部联接。
注意:在Oracle PL / SQL中,既没有+ =也没有+:=运算符:
SQL> declare
2 i numeric := 0;
3 begin
4 i+:=1;
5 end;
6 /
i+:=1;
*
ERROR at line 4:
ORA-06550: line 4, column 3:
PLS-00103: Encountered the symbol "+" when expecting one of the following:
:= . ( @ % ;
The symbol "+" was ignored.
SQL> --
SQL> declare
2 i numeric := 0;
3 begin
4 i+=1;
5 end;
6 /
i+=1;
*
ERROR at line 4:
ORA-06550: line 4, column 3:
PLS-00103: Encountered the symbol "+" when expecting one of the following:
:= . ( @ % ;
SQL> show errors
No errors.
SQL> --
SQL> declare
2 i numeric := 0;
3 begin
4 i := i + 1;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句