表是这样的
A列  B列
————————
1
2
3
2
4
5
1类似上面这样,得数据 ,根据A列更新B列,要求是 如果A列相同,给B列 使用sys_guid 产生一个guid。
也就是A列相同的值的行,B列也是相同的guid;
  有没有什么简便方法来更新B列呢

解决方案 »

  1.   

    语言表达能力需要加强啊,需求描述不清楚,看了好一会才明白你在说啥。严谨的方法,一条sql是解决不了了,只能用存储过程。
    1.使用distinct或group by查出A列中所有不同的值
    2.根据A列值,循环更新B的值为sys_guid 不严谨的方法UPDATE TABLE SET B=sys_guid||A
      

  2.   

    我想的有点复杂:
    一 用分析函数选出有两行以上的记录去重,并在后面加一列标明数值
    二 第一步得出的表和源表进行关联更新,还是需要用到merger函数的。
      

  3.   

    我是分两步做的,  
    1、先group by  a列 用min(rowid)  给b列更新个sys_guid();
    2、然后  用   update    表 m set  b=(  select b  from 表 t where  b is not null  and m.a=t.a) where m.b is null
    来更新的感觉比较麻烦