排序的话,用order by来处理即可。
比如:
col
a123
a234
b999
b335
select from tablename order by col;结果就是
col
a123
a234
b335
b999
如果按倒序排列:
select from tablename order by col desc;结果就是
col
b999
b335
a234
a123
select your_seq_namecurrval from dual;
可以得到当前值,且不会增加序列。
不过需要注意的是如果该序列是第一次使用,是不能用currval的,因为还没初始,必须至少用nextval一次后才能用currval。
判断:查找表触发器,sequence是否有效。
原理:ORACLE通过使用触发器完成自动生成序列号的工作,这一点相较ACCESS类数据库不同。程序员通常先建立序列sequence,然后创建基于表的触发器以自动产生编号。
以创建sequence tb1_seq为例:
create sequence tb1_seq
minvalue 1
maxvalue 999999999999999999999999999
start with 1 --从1开始
increment by 1 --自增1
nocache; --不循环
创建一个行级触发器,当插入表tb1时,触发自动编号
create or replace trigger tb1_trigger
before insert on tb1 --插入前取当前序列值的下一个
for each row
begin
select tb1_seqnextval into :newId from dual;
end ;
PS:tb1_seqnextval可直接在存储过程中使用
select t from
(
select a,rownum as rownums from test a
) t where rownum = 输入查询的序号
外边再用层嵌套不就行了吗?
比如
select rownum,acol1,aclo2,acounts from
(select col1,col2,count() counts from table1 group by col1,col2) a;
以上就是关于oracle 表中如何对按含有字母和数字的编号来进行排序全部的内容,包括:oracle 表中如何对按含有字母和数字的编号来进行排序、oracle中,在不用nextval的情况下,如何得到序列当前值、ORACLE 中如何判断自动产生了编号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)