oracle的SQL语句中的(+)是干什么用的?

oracle的SQL语句中的(+)是干什么用的?

2010-09-19 10:36 龙脉术士  |  分类:数据库DB  |  浏览4536次
2010-09-19 11:10 提问者采纳
oracle特有的左外联书写方式,当然你也可以用传统的通用的左外联,比如给你举个例子
SELECT s.name AS 姓名,g.grade AS 分数,c.cid AS 课程名 
FROM tbl_student s LEFT OUTER JOIN tbl_grade g ON s.StudentId=g.sid LEFT OUTER JOIN tbl_class c ON g.cid=c.ClassId
它跟下面等价
SELECT s.name AS 姓名,g.grade AS 分数,c.classname AS 课程名 
FROM tbl_student s,tbl_grade g,tbl_class c 
WHERE (s.StudentId=g.sid(+)) AND (g.cid=c.ClassId(+))
 
     
 
     
 
     
 
     
 
     
 
     
 
     
 
     
 
     

SQL Server 数据库 (+) 这个是什么意思

2012-05-27 15:01 taozhenBeiJing  |  分类:数据库DB  |  浏览2306次
2012-05-27 15:40
提问者采纳
热心网友
(+) 表示外连接。条件关联时,一般只列出表中满足连接条件的数据。如果条件的一边出现(+),则可列出该表中在条件另一侧的数据为空的那些记录。比如两个表:员工表和工资表。员工表中有总经理、A、B、C四条记录,工资表中只有A、B、C三人的记录。如果写如下语句:
              select 姓名,工资 from 员工表,工资表 where 员工表.姓名=工资表.姓名
那么只可能但出A、B、C三人的记录。
如果写成:
             select 姓名,工资 from 员工表,工资表 where 员工表.姓名(+)=工资表.姓名
则可列出总经理及A、B、C三人的记录,只不过查询结果中总经理对应的”工资“列值为空。
提问者评价
Thank you!

你可能感兴趣的:(JAVA)