SQL问题求教

gao11811 2010-08-20 11:22:15
假设表A,有字段A_COL
小弟想问下,在where子句中有一个条件是 'and A.A_COL(+) is NULL'
这里的(+)是什么意思,有人说是把空值也显示,不懂,条件子句和显示有什么关系
...全文
142 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yf520gn 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gao11811 的回复:]
引用 1 楼 zhuomingwang 的回复:
给你个例子

SQL code
SQL> SELECT D.DEPTNO,E.EMPNO,E.ENAME,E.JOB,E.HIREDATE,E.SAL
2 FROM
3 DEPT D,EMP E
4 WHERE D.DEPTNO=E.DEPTNO(+);--显示dept表中的deptno即使在emp中没有

DEPTNO EMPN……
[/Quote]
(+)号一般表示左右连接,这么用虽然语法不会报错,但无任何意义,等价A.A_COL is NULL
yjytiantang 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 gao11811 的回复:]
假设表A,有字段A_COL
小弟想问下,在where子句中有一个条件是 'and A.A_COL(+) is NULL'
这里的(+)是什么意思,有人说是把空值也显示,不懂,条件子句和显示有什么关系
[/Quote]

使用+号代表外部联合,+的意思就是显示该字段的全部内容,包括不匹配的。
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gao11811 的回复:]
引用 1 楼 zhuomingwang 的回复:
给你个例子

SQL code
SQL> SELECT D.DEPTNO,E.EMPNO,E.ENAME,E.JOB,E.HIREDATE,E.SAL
2 FROM
3 DEPT D,EMP E
4 WHERE D.DEPTNO=E.DEPTNO(+);--显示dept表中的deptno即使在emp中没有

DEPTNO EMPN……
[/Quote]把你看到的这个例子,具体语句贴出来
gao11811 2010-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhuomingwang 的回复:]
给你个例子

SQL code
SQL> SELECT D.DEPTNO,E.EMPNO,E.ENAME,E.JOB,E.HIREDATE,E.SAL
2 FROM
3 DEPT D,EMP E
4 WHERE D.DEPTNO=E.DEPTNO(+);--显示dept表中的deptno即使在emp中没有

DEPTNO EMPNO ENAME……
[/Quote]

首先谢谢你的回答
左右用=比较的时候,我知道(+)的意义,你的这个例子是平常用的,我想问的是当一边为is null的时候表示什么意思
是一样的吗?
貌似真是一样的,就是说显示所有的值,无论是否为空。
但是本身就去比较NULL,不是会矛盾吗?或者说是多此一举,和'and A.A_COL is NULL'有什么区别呢?
Phoenix_99 2010-08-20
  • 打赏
  • 举报
回复
左连接
minitoy 2010-08-20
  • 打赏
  • 举报
回复
别用了这个了,oracle的老写法了,现在oracle都支持sql99了,还是用left join吧。
gelyon 2010-08-20
  • 打赏
  • 举报
回复
这是Oracle的外连接形式,具体你可以参考:http://www.examda.com/oracle/zonghe/20100607/093510617.html
  • 打赏
  • 举报
回复
给你个例子
SQL> SELECT D.DEPTNO,E.EMPNO,E.ENAME,E.JOB,E.HIREDATE,E.SAL
2 FROM
3 DEPT D,EMP E
4 WHERE D.DEPTNO=E.DEPTNO(+);--显示dept表中的deptno即使在emp中没有

DEPTNO EMPNO ENAME JOB HIREDATE SAL
---------- ---------- ---------- --------- -------------- ----------
10 7782 CLARK MANAGER 09-6月 -81 2450
10 7839 KING PRESIDENT 17-11月-81 5000
10 7934 MILLER CLERK 23-1月 -82 1300
20 7369 SMITH CLERK 17-12月-80 800
20 7566 JONES MANAGER 02-4月 -81 2975
20 7788 SCOTT ANALYST 19-4月 -87 3000
20 7876 ADAMS CLERK 23-5月 -87 1100
20 7902 FORD ANALYST 03-12月-81 3000
30 7499 ALLEN SALESMAN 20-2月 -81 1600
30 7521 WARD SALESMAN 22-2月 -81 1250
30 7654 MARTIN SALESMAN 28-9月 -81 1250

DEPTNO EMPNO ENAME JOB HIREDATE SAL
---------- ---------- ---------- --------- -------------- ----------
30 7698 BLAKE MANAGER 01-5月 -81 2850
30 7844 TURNER SALESMAN 08-9月 -81 1500
30 7900 JAMES CLERK 03-12月-81 950
40
gao11811 2010-08-20
  • 打赏
  • 举报
回复
thanks,结贴

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧