oracle 取第一条或者最后一条记录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 取第一条或者最后一条记录相关的知识,希望对你有一定的参考价值。
主键id 使用的sys_guid()函数自动生成的
现在有一堆记录 我需要做的是 取得最新添加的一条记录(可按照时间排序) 请问该怎样做呢?
select * from table_name where id in (select max(id) from table_name);
这样ORACLE会走索引快速扫描得出最后一条ID的值,然后通过唯一索引得出最后一条记录,这样效率较高。 参考技术A SELECT * FROM (
SELECT * FROM TBL_TEST T
ORDER BY T.TIME DESC
) WHERE ROWNUM < 2
取rownum为1的也就是小于2的就可以
select x.id from(select s.id ,rownum num from(select t.id from table_name t order by t.date)s)x where x.num=(select count(id)from table_name)
刚才这样写试了下暂时还没发现有什么问题,还是谢谢你们了
2、也可以使用oracle的伪劣ORA_ROWSCN。
select * from (select t.*,ORA_ROWSCN oscn from t1 t ) where oscn =(select max(ora_rowscn) from t1) ;
3、只查最近的,可以查询flashback_transaction_query视图 参考技术C SELECT * FROM (SELECT T.*,ROWNUM RN FROM TABLE_NAME T ORDER BY ROWNUM DESC ) WHERE ROWNUM=1
MYSQL中查讯咋查第一条记录!
select top 1 * from book
这不对吗
还有 SELECT *
FROM `book`
LIMIT 0 , 30 后面 LIMIT 0 , 30 是什么意思
查看第一条:
SELECT
group_concat(id ORDER BY `create_time` DESC)
FROM
`user`
GROUP BY
user_code
select top 1 * from book 不对,因为mysql里没有top这种写法,它用limit。
扩展资料:
1、查看最后一条
mysql:
select * from table order by id DESC limit 1
oracle:
select * from emp where id in (select max(id) from emp);
2、查询前n行记录
select * from table1 limit 0,n;或select * from table1 limit n;
3、查询后n行记录
select * from table1 order by id desc dlimit n;//倒序排序,取前n行,id为自增形式
标示从第一条开始,获取30条
SELECT * FROM `book` LIMIT 30
标示获取前面30条,和上面的功能一样
SELECT * FROM `book` LIMIT 19 , 10
标示从第20条开始取10条,也就是20~30,注意从第一条编号是0本回答被提问者采纳 参考技术B
select top 1 * from book 不对,因为mysql里没有top这种写法,它用limit
查第一条 select * from book limit 1;
select * from book limit 0,30 后面的limit 0,30 是查询前30条记录
以上是关于oracle 取第一条或者最后一条记录的主要内容,如果未能解决你的问题,请参考以下文章
oracle 查询数据只要排序后的第一条记录(不用rownum=1),sql语句怎么写