序列生成器作为SQL中select语句中的列

时间:2015-06-25 22:04:43

标签: sql sequence

我试图将select语句或insert语句插入到另一个表中,我将序列添加到第一列。

请参阅以下内容:

create table test (
nm      varchar(20),
age         decimal(38,12));

insert into test values ('Albert',20),('Ben',10),('Charles',30)

我正在尝试运行查询,当我这样做时:

select 
##some kind of sequence function## as seq,
nm,
age
from test

我回来了:

seq nm age
1 Albert 20
2 Ben 10
3 Charles 30

此外,我希望能够将起始编号设置为序列,因此我可以将其设置为50,序列将显示51,52,53等。

谢谢

2 个答案:

答案 0 :(得分:1)

    select 50+row_number() over (order by nm) as rnum,
    nm,age from test

答案 1 :(得分:0)

您可以使用IDENTITY:

CREATE TABLE test
(
  id INT IDENTITY (50,1),
  nm VARCHAR(20) ,
  age DECIMAL(38, 12)
);

INSERT  INTO test
VALUES  ( 'Albert', 20 ),
        ( 'Ben', 10 ),
        ( 'Charles', 30 )

那会给你:

id   nm       age
---------------------------
50   Albert   20.000000000000
51   Ben      10.000000000000
52   Charles  30.000000000000