表是这样的
A列 B列
————————
1
2
3
2
4
5
1类似上面这样,得数据 ,根据A列更新B列,要求是 如果A列相同,给B列 使用sys_guid 产生一个guid。
也就是A列相同的值的行,B列也是相同的guid;
有没有什么简便方法来更新B列呢
A列 B列
————————
1
2
3
2
4
5
1类似上面这样,得数据 ,根据A列更新B列,要求是 如果A列相同,给B列 使用sys_guid 产生一个guid。
也就是A列相同的值的行,B列也是相同的guid;
有没有什么简便方法来更新B列呢
1.使用distinct或group by查出A列中所有不同的值
2.根据A列值,循环更新B的值为sys_guid 不严谨的方法UPDATE TABLE SET B=sys_guid||A
一 用分析函数选出有两行以上的记录去重,并在后面加一列标明数值
二 第一步得出的表和源表进行关联更新,还是需要用到merger函数的。
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
来更新的感觉比较麻烦