有关rowNum

    技术2022-06-13  63

    对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,

    返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。

    所以上面几条能够查到记录。

    select * from product where rownum between 1 and 30 

    select * from product where rownum <20

    select * from product where rownum = 1

     

    select * from (select rowId A,t.* from product t ) where A like'%A%'

     

    使用rownum>N做条件,不可能查到记录。

    select * from product where rownum >20

    select * from product where rownum between 20 and 30

    select * from product where rownum = 2

     

    原理

    1 Oracle executes your query.

    2 Oracle fetches the first row and calls it row number 1.

    3 Have we gotten past row number meets the criteria(基准,条件)? If no, then Oracle discards(丢弃) the row, If yes, then Oracle return the row.

    4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).

    5 Go to step 3.


    最新回复(0)