我有一堆数据,假如下面的样子:
字段1,字段2
1->a
2->b
3->c
1->d
4->e
3->f我现在要读出来1、2、3、4以及对应的字母,规则是如果发现重复,用最近的替换之前的,也就是得到这样的结果:
1->d
2->b
3->f
4->e
上面的这些数我只能从游标中获得,用来构造动态的sql语句。请大家帮我想象办法!多谢!注:留第一个值对也可以。

解决方案 »

  1.   

    select 字段1,字段2 from 
    (
    select 字段1,字段2 ,row_number(partition by 字段1 order by 字段1 desc) row_number
    from table
    ) t
    where t.row_number = 1
      

  2.   

    路过,学习。
    ps:数据结构MAP可以说是中“值对”,对于oracle,构造“值对”还是相对容易的。
    建议lz,多从sql角度出发思考问题,询问问题。
      

  3.   

    oracle的脚本语言,与java,dotNet比较肯定有他不完善的地方。
    一方面是因为侧重点不同,一方面也因为领域和开发理念的不同。
    当然也有实现方法的不同。
    楼主的疑问就属于最后一种,oracle也是可以实现楼主的要求的。
    方法的话,比如说临时表的更新(key,val)这不就是map吗?
      

  4.   

    select 字段1,max(字段2)
    from table
    group by 字段1
      

  5.   

    2楼为正解,使用了SQL OLAP函数