免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1536 | 回复: 5
打印 上一主题 下一主题

sql 子查询返回奇怪结果,欢迎高手提供正确思路! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-10 22:50 |只看该作者 |倒序浏览
SELECT        ename, deptno, sal, comm
  FROM        emp
   WHERE   (sal, NVL(comm,-1)) IN
   (SELECT sal, NVL(comm,-1)
       FROM   emp
       WHERE  deptno = 30);

ocp 的参考资料里的一道题,相信很多人都看过。
是对emp表做的一个查询,返回结果很奇怪,
是按sal升序排列的。
本来以为记录条数太少,凑巧的,于是自动生成了
300条数据,其中sal都是随机生成,并且乱序插入emp表,
运行该条sql的结果还是按sal升序排列?
WHY???

论坛徽章:
0
2 [报告]
发表于 2004-05-10 23:43 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2004-05-10 23:51 |只看该作者

sql 子查询返回奇怪结果,欢迎高手提供正确思路!

可是为什么是按sal排序呢?
我改了一下sql语句
SELECT ename, deptno, sal, comm
  FROM  emp
  WHERE   (sal,empno ) IN
  (SELECT sal,empno
              FROM   emp
               WHERE  deptno = 70);
结果就是乱序的了。
我怀疑是不是nvl的原因呢???

论坛徽章:
0
4 [报告]
发表于 2004-05-11 00:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2004-05-11 00:33 |只看该作者

sql 子查询返回奇怪结果,欢迎高手提供正确思路!

我把empno加入select中,发现结果没有变化,
也不是按empno排序。

论坛徽章:
0
6 [报告]
发表于 2004-05-11 10:44 |只看该作者

sql 子查询返回奇怪结果,欢迎高手提供正确思路!

dubg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP