SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM tuser) A WHERE ROWNUM <= ? )WHERE RN > 0select * from (select a.*,rownum rn from A ) where rn>=1 and rn<=10
请问下这个2个语句有什么区别忽略表名和参数
rownum取个别名rn然后用到的时候随便写哪个都可以?就是rownum 和rn 等价的意思???
请问下这个2个语句有什么区别忽略表名和参数
rownum取个别名rn然后用到的时候随便写哪个都可以?就是rownum 和rn 等价的意思???
不是这样,rownum与那个rn不是等价,因为数据集的rownum是个动态赋值的伪列,该值必须从1开始,然后递增,所以rownum > 2这种where条件是永远不成立的,而rn > 2 是成立的。
select rn1,rownum from (select a.*,rownum rn from A ) where rn>=1 and rn<=10rn是子查询select a.* rownum rn from A中的rownum的别名,在子查询的结果集中rn是其中的列数据
select rn1,rownum 中的rownum是外层查询中的伪列,与子查询中的rownum rn没有任何关系.