oracle sql语言中如何写if的判断,并循环?
table1idnumbertable2idnumber两个表通过id关联,判断iftable1.number>table2.number做table1,number=t...
table1 id number table2 id number两个表
通过id关联,判断if table1.number>table2.number
做table1,number=table1.number-table2.number
直到table1.number<table2.number。
sql语言能实现么?谢谢指导! 展开
通过id关联,判断if table1.number>table2.number
做table1,number=table1.number-table2.number
直到table1.number<table2.number。
sql语言能实现么?谢谢指导! 展开
1个回答
展开全部
咦,刚有回答你一个问题。你这个是只判断table1.number>table2.number情况下才update。其他情况不考虑。
update table1 t3
set t3.number =
(select number
from (select t1.id, t1.number - t2.number number
from table1 t1, table2 t2
where t1.id = t2.id) t4
where t3.id = t4.id
and t4.number > 0)
where t3.id in (select t1.id
from (select t1.idt1.number - t2.number number
from table1 t1, table2 t2
where t1.id = t2.id) t4
where t4.number > 0);
commit;
update table1 t3
set t3.number =
(select number
from (select t1.id, t1.number - t2.number number
from table1 t1, table2 t2
where t1.id = t2.id) t4
where t3.id = t4.id
and t4.number > 0)
where t3.id in (select t1.id
from (select t1.idt1.number - t2.number number
from table1 t1, table2 t2
where t1.id = t2.id) t4
where t4.number > 0);
commit;
追问
好复杂..有点看不懂。这个怎么循环啊?
追答
为啥要循环呢,直接判断就是了。这个就是按刚才回答你的上一题,改动一下。t1.number - t2.number number >0 的时候,就是需要update的数据。就是t4.number > 0这点做判断的。把这些条件过滤一下就是上面的了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询