第二个方法:增加一同值的列,用来order by,例如:
select row_number()over(order by orderid),t1.* from (select 1 as orderid,t.* from 表 t)t1
第三个办法:使用Identity+临时表,例如:
select Identity(int,1,1),t.* Into #temptable from 表 t
select * from #temptable
INSERT时如果要用到从1开始自动增长的数字做唯一关键字,应该先建立一个序列号.CREATE
SEQUENCE
序列号的名称
(最好是表名+序列号标记)
INCREMENT
BY
1
START
WITH
1
MAXVALUE
99999
NOCYCLE
NOCACHE其中最大的值按字段的长度来定,比如定义的自动增长的序列NUMBER(6)
,
最大值为999999INSERT
语句插入这个字段值为:
序列号的名称.NEXTVAL例子:
SQL>
insert
into
s_dept(id,
name,
region_id)
values
(s_dept_id.nextval,
‘finance’,
2)1
row
created.只有运行了序列号的名称.
nextval后序列号的名称.
currval
才有效才有值.
通过rownum实现即可。sql:select rownum , * from tablename where 条件语句。
解释:rownum是隐藏的,查询结果默认从1开始编号,所以肯定会是自然编号的,有多少条,编号就到多少。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)