use*_*074 2 sql oracle while-loop
您好我在Oracle SQL中编写了一个while循环.我认为语法很好,但由于某种原因它不能成功.有人可以帮我检查问题所在吗?非常感谢!
它只使用一个表"test_fruit",colume"price".
BEGIN
WHILE (select sum(price) from test_fruit) <50 LOOP
update test_fruit set price = price + 5;
EXIT WHEN (select max(price) from test_fruit) >20;
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我要做的是更新表,并增加每行的价格,直到总和为50.此外每行的最高价格不能超过20.谢谢!
有几种方法可以做,但你可以尝试这样的事情:
DECLARE
l_sumprice INTEGER := 0;
l_maxprice INTEGER := 0;
BEGIN
WHILE l_sumprice < 50 AND l_maxprice < 20 LOOP
UPDATE test_fruit SET price = price + 5;
SELECT sum(price), max(price) INTO l_sumprice, l_maxprice FROM test_fruit;
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23644 次 |
| 最近记录: |