如果寫這個執行週期WHEN特定條件
DECLARE res INTEGER;
DECLARE loop_res INTEGER;
BEGIN
SELECT 0 INTO loop_res;
FOR i IN 1..5 LOOP
SELECT loop_res + i INTO loop_res;
END LOOP;
SELECT
case
WHEN some_variable < 3
THEN --some result
WHEN some_variable >= 3
THEN loop_res
END
INTO res;
這工作,但在這裏,反正會正確執行LOOP語句?
只有在以下情況下才有可能執行LOOP語句,如果WHEN some_variable >= 3
?
我想:
SELECT
case
WHEN some_variable < 3
THEN --some result
WHEN some_variable >= 3
THEN
FOR i IN 1..5 LOOP
SELECT loop_res + i INTO loop_res;
END LOOP;
loop_res
END
INTO res;
給出錯誤syntax error at or near "FOR" at character ...
非常感謝,我不是真的做了什麼,我只是學習和測試如何在concret CASE條件下使用循環語句。 – RIKI
@OTARIKI啊,這樣更有意義。每當你可以避免在PL/PgSQL中使用'LOOP'時,你應該這樣做。與在普通SQL中執行相同的工作相比,它效率非常低。 –
感謝您提供有用的信息 – RIKI