代码如下:
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表中的字段名是没有(+)的,求解释
解决方案 »
- pl/sql developer怎么同时执行2条命令
- 一个关于还原数据库的问题
- linux 双机热备客户端连接时好时报错:12514无监听程序
- select name,age,address from student order by 3 desc;
- 怎么把select 出的数值结果加上千位符,比如1000,输出1,000
- 关于数据库性能的问题?
- 存储过程,这么简单都不对?????
- 怎么 drop type 啊----最后50分了
- 表中有一个字段是Blob型的,如何将文件插入到此字段里面呢?!9i数据库... 谢谢!
- 这段小程序,怎么有警告。用的时候也不成功。
- 求大神帮忙,oracle 存储过程,我有一张税率表。
- ORACLE 存储过程如何实现动态建表?或者是触发器?纠结,求大神?
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表有相对应的数据的情况下,才检索出来。