求解带条件的更新

dooe 2003-06-08 09:10:05
oracle中有没有类似于sqlserver中的case 内置函数
问题:
A、 表中有 id,a1,a2,b1,b2,c1,c2,k 字段
依据条件if b1 - a1 <-k then c1= b1 - a1 else c1=a1 -b1 end if;
if b2 - a2 <-k then c2=b2- a2 else c2=a2 -b2 end if;
更新表中的 c1,c2
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dooe 2003-06-10
  • 打赏
  • 举报
回复
谢谢楼上的同志们,

◎-◎
qiuyang_wang 2003-06-09
  • 打赏
  • 举报
回复
用decode可以,但不能做大小的比较,只能用等的关系。不过可以通过运算得到等的关系,象things(平)写的那样。如果是9i,则可以使用:case,灵活些。
jiezhi 2003-06-08
  • 打赏
  • 举报
回复
in oracle9i:
you can use "case" just like in ms sql
things 2003-06-08
  • 打赏
  • 举报
回复
<-k还是<=k
如果是<=k
update table set
c1 = decode(sign(b1-a1-k), 1, a1-b1, b1-a1),
c2 = decode(sign(b2-a2-k), 1, a2-b2, b2-a2)

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧