或者什么SQL语句能把表中比如说最后五条、最后五条的前五条、最后五条的前五条的前五条...记录分别存到结果集中!
解决方案 »
- 将sql转换成oracle,就一条sql
- 这样sql怎么写啊?帮看看
- 如何用sql语句写入blob类型数据?
- 急!如何从一张表的内容追加到另一张表里(字段不一样)?
- oracle9i 数据库一星期死次机是么回事?
- 如何解决pl/sql调用C的动态库时传递参数时,参数数据量太大的问题?
- Oracle 创建视图 能提高检索速度吗? 需要占用额外的空间吗?
- 请教
- 关于9I CLIENT 访问 8I时, EXP遇到的问题
- 将一个图片文件保存到ORACLE,必须同时使用BFILE和BLOB吗?
- 用存储过程动态创建触发器来记录表数据的更新,巨头疼的问题,高分求解!!!
- 关于american_america.us7ascii字符集的问题
可以使用rownum来实现
得到的结果是1至5条。也就是说从id<20的所有记录中从前面开始取五条,可是我想要取19到15条。如果加上order by id也只能得到5到1条。
select * from table1 where rownum<20 and r1 no in (select r1 from table1 where rownum<15)
已知的条件是:知道某条记录的唯一性字段的值。
目标: 得到这条记录之前的n(比如n=5)条记录。 至于你提到的rownum<20,和rownum<15中的'20'和'15'都是不知道的!也就是说你不知道这条记录之前有多少条记录,也不知道这条记录是第几条。
例子如下显示:
select * from (select rownum rw,id from tab)
where rw between
(select rw1-5 from (select rownum rw1,id from tab) where id=指定值)
and
(select rw1 from (select rownum rw1,id from tab) where id=指定值);呵呵!OK!
比如要选择product_id=110之前的五条记录
表名:e_user_product主键:product_id
select product_id from e_user_product where product_id
in(
select product_id from
(SELECT product_ID FROM e_user_product where user_id=3 and product_id<=110 order by product_id desc)
WHERE ROWNUM <= 5
)
ORDER BY product_id desc;