Order by 的数值型灵活使用

http://tech.ddvip.com   2006年03月31日    社区交流

本文详细介绍Order by 的数值型灵活使用

  --------- ------ ---------

  1 200001 1000

  2 200002 1100

  3 200003 1200

  如何用rownum实现大于、小于逻辑?(返回rownum在4—10之间的数据)(minus操作,速度会受影响)

  SQL> select rownum,month,sell from sale where rownum<10

  2 minus

  3 select rownum,month,sell from sale where rownum<5;

  ROWNUM MONTH SELL

  --------- ------ ---------

  5 200005 1400

  6 200006 1500

  7 200007 1600

  8 200101 1100

  9 200202 1200

  想按日期排序,并且用rownum标出正确序号(有小到大)

  SQL> select rownum,month,sell from sale order by month;

  ROWNUM MONTH SELL

  --------- ------ ---------

  1 200001 1000

  2 200002 1100

  3 200003 1200

  4 200004 1300

  5 200005 1400

  6 200006 1500

  7 200007 1600

  11 200008 1000

  8 200101 1100

  9 200202 1200

  10 200301 1300

  查询到11记录.

  可以发现,rownum并没有实现我们的意图,系统是按照记录入库时的顺序给记录排的号,rowid也是顺序分配的

  SQL> select rowid,rownum,month,sell from sale order by rowid;

  ROWID ROWNUM MONTH SELL

  ------------------ --------- ------ ---------

  000000E4.0000.0002 1 200001 1000

  000000E4.0001.0002 2 200002 1100

  000000E4.0002.0002 3 200003 1200

  000000E4.0003.0002 4 200004 1300

  000000E4.0004.0002 5 200005 1400

  000000E4.0005.0002 6 200006 1500

责编:豆豆技术应用

正在加载评论...