当前位置: 代码迷 >> Oracle管理 >> update批量更新,该如何解决
  详细解决方案

update批量更新,该如何解决

热度:30   发布时间:2016-04-24 04:24:41.0
update批量更新
表是这样的
A列  B列
————————
1
2
3
2
4
5
1

类似上面这样,得数据 ,根据A列更新B列,要求是 如果A列相同,给B列 使用sys_guid 产生一个guid。
也就是A列相同的值的行,B列也是相同的guid;
  

有没有什么简便方法来更新B列呢
------解决方案--------------------
语言表达能力需要加强啊,需求描述不清楚,看了好一会才明白你在说啥。

严谨的方法,一条sql是解决不了了,只能用存储过程。
1.使用distinct或group by查出A列中所有不同的值
2.根据A列值,循环更新B的值为sys_guid 

不严谨的方法

UPDATE TABLE SET B=sys_guid
------解决方案--------------------
A

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