当前位置: 代码迷 >> Oracle开发 >> oracle字段加1 100分解决方法
  详细解决方案

oracle字段加1 100分解决方法

热度:110   发布时间:2016-04-24 06:33:59.0
oracle字段加1 100分
oracle字段加1的方法有哪些?除掉update 表名 set value = value+1 where 条件
------解决思路----------------------
这个是作业题?
update 表名 set value = value+1 where 条件
这写法已经是最简单的了,改成其他的肯定没这个效率高的
------解决思路----------------------
引用:
Quote: 引用:

这个是作业题?
update 表名 set value = value+1 where 条件
这写法已经是最简单的了,改成其他的肯定没这个效率高

差不多作业题  用这个函数呢
DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数
解释:
IF AA=V1 THEN RETURN R1
IF AA=V2 THEN RETURN R2
..…
ELSE
RETURN NULL

decode函数起到if的作用,如你解释的一样,好像跟你的要求没什么关系啊
------解决思路----------------------
引用:
decode函数起到if的作用,如你解释的一样,好像跟你的要求没什么关系啊

他是想把数据表的所有值都写一遍,10个8个的还好说,这要上百万条数据,还不得累死
------解决思路----------------------
引用:
他是想把数据表的所有值都写一遍,10个8个的还好说,这要上百万条数据,还不得累死


难到想这样?:


update 表名 set value = decode(value,1,2,2,3,3,4,4,5...null) where 条件
------解决思路----------------------
引用:
Quote: 引用:

他是想把数据表的所有值都写一遍,10个8个的还好说,这要上百万条数据,还不得累死

难到想这样?:
update 表名 set value = decode(value,1,2,2,3,3,4,4,5...null) where 条件

现在的老师都有毛病啊,有最好的方式不让用,让学生想些奇形怪状的方案来实现,这要放在实际工作中……,唉!
------解决思路----------------------
引用:
Quote: 引用:

这个是作业题?
update 表名 set value = value+1 where 条件
这写法已经是最简单的了,改成其他的肯定没这个效率高

差不多作业题  用这个函数呢
DECODE(AA﹐V1﹐R1﹐V2﹐R2....)函数
解释:
IF AA=V1 THEN RETURN R1
IF AA=V2 THEN RETURN R2
..…
ELSE
RETURN NULL


有道理。思路第一,效率再议
做开发,思路很重要
------解决思路----------------------
引用:
update 表名 set value =decode(sign,1,value+1,0,value)  //当sign为1时返回value+1,为零返回value

看来你是想根据其他的值更改成相应的值,并不是简单的value+1,如果你的SIGN是表里字段,直接加入条件进行更改,岂不更好。

update tb set value=value+1 where sign=1.
------解决思路----------------------
sign哪来的?表里面的字段?
------解决思路----------------------
照你这思路写成case when也行了,条件还不一定是等值比较
update 表名 set value = (case when 条件 then value+1 else value end) 

不过再怎么写也是直接“update 表名 set value = value+1 where 条件” 这样的执行效率最高的
------解决思路----------------------
两点之间,直线最短
------解决思路----------------------
我觉得楼主写个自加的函数得了,多绕点路就不会被看出来了
------解决思路----------------------
update 表名 set value = value + sign

update 表名 set value = value + decode(sign,1,1,0,0)

都没有 value+1
  相关解决方案