where rownum <= 10条件的疑问

tcxx2008 2012-11-13 04:55:36

select rownum,row_.*, rownum jres_db_rownum_
from (select sa.ADJUST_ID,
sa.STAFF_CODE,
-- sa.SERIAL_NO,
sa.CURR_DT,
-- sa.DEAL_TM,
sa.SALARY_SUBJECT,
sa.OCCUR_BALANCE,
sa.BRANCH_NO,
sa.TEAM_NO,

sa.OP_ACCOUNT,
sa.REMARK,
sa.audit_status
from sly_adjustfarerecord sa
where 1 = 1
order by audit_status, curr_dt desc, branch_no) row_

如上语句的结果如下:


在这个语句后面加个 where rownum <= 10 条件后(其他什么都不变)查询结果为:


疑问:为什么加条件后的结果不是1上面图中的前面10条呢,然后2图中得出的结果是按照什么逻辑得出的
...全文
592 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuge6688 2012-11-16
  • 打赏
  • 举报
回复
兄弟看样你没理解 rownum的含义啊。 你的条件语句是不是加在 where 1=1 那了,你有order by 如果你把你把你的语句括号上作为表查询 在外边写上 条件语句 就应该显示那个前10条了。 可能我写的不够清楚,你去看看rownum的相关资料,再自己写几个语句试试不同的效果。
yaiger 2012-11-16
  • 打赏
  • 举报
回复
可以用row_number()分析函数
bjliuzg 2012-11-15
  • 打赏
  • 举报
回复
请参考 http://hi.baidu.com/elfinalice/item/be6aed3321ce42c42e8ec2c5 网址的 (4)rownum和排序 章节,原理:Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意。
小海葵1 2012-11-15
  • 打赏
  • 举报
回复
rownum写在里面那个查询里,外面就不要了。
english325 2012-11-15
  • 打赏
  • 举报
回复
太多了,不好区分
ssqtjffcu 2012-11-14
  • 打赏
  • 举报
回复
你的 where rownum <= 10 是写在哪呢?你不完整写出来,谁知道你写的语句是怎样的,坐等有啥用
tcxx2008 2012-11-14
  • 打赏
  • 举报
回复
为什么呢?怎么没人回答呀
xiaoqinD 2012-11-13
  • 打赏
  • 举报
回复
扔掉一个rownum
xiaoqinD 2012-11-13
  • 打赏
  • 举报
回复
怎么那么多rownum
xiaoqinD 2012-11-13
  • 打赏
  • 举报
回复
select * from (select rownum rr,row_.*, rownum jres_db_rownum_ from (select sa.ADJUST_ID, sa.STAFF_CODE, -- sa.SERIAL_NO, sa.CURR_DT, -- sa.DEAL_TM, sa.SALARY_SUBJECT, sa.OCCUR_BALANCE, sa.BRANCH_NO, sa.TEAM_NO, sa.OP_ACCOUNT, sa.REMARK, sa.audit_status from sly_adjustfarerecord sa where 1 = 1 order by audit_status, curr_dt desc, branch_no) row_ ) bb where bb.rr<11
tcxx2008 2012-11-13
  • 打赏
  • 举报
回复
加了条件 where rownum <= 10 后执行的结果如下图2:


疑问:为什么加条件后的结果不是上面1图中的前面10条呢,然后2图中得出的结果是按照什么逻辑得出的?坐等结果。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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