请教一下关于下面sql语句的意思?

这句话什么意思?能解释的详细点吗?真心看不懂。。。
select * from (select e.*,rownum rn from (select username, sex, age, email,address, reg_date from users)e where rownum <=?) where rn>=?

select username, sex, age, email,address, reg_date from users --这个就是个正常的查询

select e.*,rownum rn from (select username, sex, age, email,address, reg_date from users) e where rownum <=? --这个是把刚才的查询当做结果集,并排上序号,后边只取序号小于你问号的那个值的

最后一共的查询,是把上边那步的查询继续当作结果集,取其中编号大于问号那个值的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-25
这是oracle 的分页语法

select username, sex, age, email,address, reg_date from users :查询的语句

select e.*,rownum rn from (select username, sex, age, email,address, reg_date from users)e where rownum <=?
取 ? 行以内的数据

select * from (select e.*,rownum rn from (select username, sex, age, email,address, reg_date from users)e where rownum <=?) where rn>=?
取 rn>=? 以上的数据
第2个回答  2013-07-25
这是oracle里一种分页sql语句,3个select的嵌套,rownum<=?设置显示到第几条,rn>=?设置从第几条开始显示,rn是第二层select中rownum的别名,rownum是oracle提供的编号函数,很特别她必须从1开始。
相似回答