我要取出最大ID,也就几序列的当前值得 select max(yourcolumn) from yourtable 这样取出的不准确的
id name 1 ff 2 ss .. .. 947 ppp .. .. 1021 ssss取出最大ID,也就是ID=1021
如果楼主用的是sequence的话,在没有commit前,可以用 select seq_name.currval from dual; 得到sequence当前的值,这个值即是此事务中最后一次从sequence取到的值。
sequence的话,用楼上的方法可能有问题 有 几种情况 会出现间隙 例如 rollback.
楼主就是要最大值,max为什么不行?
试试我这个: SQL> select user_id from user_info; USER_ID ---------- 6 7 8 9SQL> run 1* select user_id from (select user_id from user_info order by user_id desc) where rownum<2 USER_ID ---------- 9
SELECT MAX(ROWNUM) FROM TABLE
select seq_name.currval from dual;或者 select max(id) from tab
select max(yourcolumn) from yourtable 这样取出的不准确的
1 ff
2 ss
.. ..
947 ppp
.. ..
1021 ssss取出最大ID,也就是ID=1021
select seq_name.currval from dual;
得到sequence当前的值,这个值即是此事务中最后一次从sequence取到的值。
有 几种情况 会出现间隙
例如 rollback.
SQL> select user_id from user_info; USER_ID
----------
6
7
8
9SQL> run
1* select user_id from (select user_id from user_info order by user_id desc) where rownum<2 USER_ID
----------
9
select max(id) from tab