1

我有一个主表 X,其中包含 a、b 列,我希望将其复制到其他表 Y。Y 有 3 列:a、b、z 其中 z 应该自动递增 - 0、1、2 ...我想成为能够做到

INSERT INTO Y(a,b,z) select a,b from X WHERE ....

所以我实际上只有 a,b 的子查询,我希望它们在新表 Y 中添加值 0,1,2,3...。我该怎么做?

4

2 回答 2

2

你可以使用row_number(). 减一从零开始:

insert  into y
        (a,b,z) 
select  a
,       b 
,       row_number() over (order by a, b) - 1
from    X
于 2013-06-16T09:17:22.740 回答
0

在 MSSQL 中,您将使用

Id       Int          NoNullable Identity(1,1) 

对于Postgres auroincrement使用SERIAL

于 2013-06-16T09:24:29.807 回答