代码如下:
SELECT *
FROM SFISM4.R_MO_BASE_T R105, SFIS1.C_ROUTE_NAME_T CRN, SFIS1.C_CUSTOMER_T CUS
where CRN.ROUTE_CODE(+) = R105.ROUTE_CODE and CUS.CUST_CODE(+) = R105.CUST_CODE
and R105.MO_NUMBER = '091012'请问一下这其中的在字段名后加(+)是什么意思,实际上在ROUTE_NAME_T和C_CUSTOMER_T表中的字段名是没有(+)的,求解释
SELECT *
FROM SFISM4.R_MO_BASE_T R105, SFIS1.C_ROUTE_NAME_T CRN, SFIS1.C_CUSTOMER_T CUS
where CRN.ROUTE_CODE(+) = R105.ROUTE_CODE and CUS.CUST_CODE(+) = R105.CUST_CODE
and R105.MO_NUMBER = '091012'请问一下这其中的在字段名后加(+)是什么意思,实际上在ROUTE_NAME_T和C_CUSTOMER_T表中的字段名是没有(+)的,求解释
FROM SFISM4.R_MO_BASE_T R105, SFIS1.C_ROUTE_NAME_T CRN, SFIS1.C_CUSTOMER_T CUS
where CRN.ROUTE_CODE(+) = R105.ROUTE_CODE and CUS.CUST_CODE(+) = R105.CUST_CODE
and R105.MO_NUMBER = '091012'想知道加号是什么意思,你只要把这条命令中的加号去掉,然后再比较两次返回的结果有何异常,就心里知道了!没有加号的时候,返回的结果要少一些记录,仔细看看吧~每次运行一下就统计一下记录条数,再仔细找找
A.id, B.IDD
FROM
A, B
WHERE
A.id(+)=B.IDD
等价于
SELECT
A.id, B.IDD
FROM
A RIGHT OUTER JOIN B ON ( A.id=B.IDD)SQL> select * from A; ID VAL
---------- ----------
1 A1
2 A2SQL> select * from B; IDD VAL
---------- ----------
1 B1
3 B3SQL> SELECT
2 A.id, B.IDD
3 FROM
4 A, B
5 WHERE
6 A.id(+)=B.IDD; ID IDD
---------- ----------
1 1
3SQL> SELECT
2 A.id, B.IDD
3 FROM
4 A RIGHT OUTER JOIN B ON ( A.id=B.IDD); ID IDD
---------- ----------
1 1
3意思是 两表关联的时候,
B 表的数据, 全部检索出来。
A表的数据,则是在B表有相对应的数据的情况下,才检索出来。