我现在查询的结果是这样的
上海
上海
上海
北京
北京
北京
北京
北京
南京
南京
南京
南京
南京
南京
..
...
...
...
....
....
....
                    现在我想把这查询的结果写到表的一个字段中  但是是要求的是 当这个值一样的时候分别要按递增的写层
1
1
1
2
2
2
2
2
3
3
3
4
4
4
。。
。。
。。                      我说的 够清楚了把

解决方案 »

  1.   

    LZ用dense_rank() over()即可。
      

  2.   

    insert into tableb(name) select decode(name,'上海','1','北京','2','南京',3) from tableA; 
      

  3.   

    举例子SQL> select Id from a;
     
    ID
    ----------
    A
    A
    C
    C
    C
    C
    C
    B
    B
    B
     
    10 rows selected
    SQL> select id,dense_rank()over(order by id) from a;
     
    ID         DENSE_RANK()OVER(ORDERBYID)
    ---------- ---------------------------
    A                                    1
    A                                    1
    B                                    2
    B                                    2
    B                                    2
    C                                    3
    C                                    3
    C                                    3
    C                                    3
    C                                    3
     
    10 rows selected
      

  4.   

    select id,dense_rank()over(PARTITION BY ID order by id) from a;
    我就错在加了红色字体的地方
      

  5.   

    select id-dense_rank()over(order by id) from table