序列生成器作为 SQL 中 select 语句中的列
Sequence generator as column in a select statement in SQL
我正在尝试执行 select 语句或将语句插入到另一个 table 中,我在第一列中添加了一个序列。
请看下面:
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等
谢谢
select 50+row_number() over (order by nm) as rnum,
nm,age from test
您可以使用 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
我正在尝试执行 select 语句或将语句插入到另一个 table 中,我在第一列中添加了一个序列。
请看下面:
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等
谢谢
select 50+row_number() over (order by nm) as rnum,
nm,age from test
您可以使用 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