要从别的表中选取数据创建如下的表(字段1和字段3的数据从别的表中来)
字段1     字段2     字段3    (字段1和字段2为表的主键) 
a           1        s
a           2        d
a           3        s
a           4        d
b           1        s
b           2        d
b           3        s
b           4        s
b           5        d
b           6        d
c           1        a
c           2        s
c           3        a现在的问题是  创建表时  如何让字段2根据字段1来自动编号?      

解决方案 »

  1.   

    create table temp as
    select 字段1,
    row_number()over(partition by 字段1 order by 字段1) 字段2,
    字段3 
    from table_name;
      

  2.   

    用rownum吧
    insert into 表1 (字段1,字段2,字段3)
    select 字段4,rownum,字段5 from 表2
      

  3.   


    alter table temp add constraint pk_temp primary key (字段1,字段2);
      

  4.   

    或许是我没说明白问题,
    创建表时,对表里边字段1相同的值进行编号,编号都是从1开始,这个编号就是字段2的值
    字段1 字段2 字段3 (字段1和字段2为表的主键)  
    a       1       s
    a       2       d
    a       3       s
    a       4       d
    b       1       s
    b       2       d
    b       3       s
    b       4       s
    b       5       d
    b       6       d
    c       1       a
    c       2       s
    c       3       a
      

  5.   

    你执行这段SQL就是你要的结果啊!select 字段1,
    row_number()over(partition by 字段1 order by 字段1) 字段2,
    字段3 
    from table_name;
      

  6.   


    insert into 新表(字段1,字段2,字段3)
    select 字段1,
    row_number()over(partition by 字段1 order by 字段1) 字段2,
    字段3  
    from 旧表;