一、特殊符号(+),在一次看以前代码的时候发现sql语句,的条件中出现了where t.commodityid = tc.commodityidand t.commodityid = thq.commodityid(+),对应“(+)”是不清楚的,于是百度,并记录在这里:
描述:(+),可以代表Oracle的左外连接、和右外连接。
操作符“(+)”需要注意以下几点:
1.(+)操作符只能出现在where子句中,并且不能与outer join语法同时使用。
2.当使用(+)操作符执行外连接时,如果在where子句中包含有多个条件,则必须在所有条件中都包含(+)操作符。
3.(+)操作符只适用于列,而不能用在表达式上。
4.(+)操作符不能与or和in操作符一起使用。
5.(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接。
如案例:
正常sql------------相等的效果----------(+)符号的sql
左外连接:select * from a left outer join b on a.id = b.id;--------Select * from a,b where a.id=b.id(+);
右外连接:select * from a right outer join b on a.id = b.id;-------Select * from a,b where a.id(+)=b.id;
二、特殊符号“||”见