当我试图在PostgreSQL中使用Reverse for循环时,似乎编译器没有识别出“反向”字。 它完全跳过循环。
DO $$
BEGIN
RAISE NOTICE 'LOOP STARTING......' ;
FOR I IN REVERSE 1..10 LOOP
RAISE NOTICE 'INSIDE LOOP......' ;
RAISE NOTICE 'NUMBER IS %', I;
END LOOP;
END $$ ;
OUTPUT
-------------------
通知:循环启动......
但是当我省略reverse这个词时,编译器工作正常。 不知道为什么会这样。
我正在使用PgAdmin版本1.20.0
答案 0 :(得分:4)
答案 1 :(得分:-1)
谢谢你的帮助。
我还面临一个问题。
根据你的建议,我已经整理了我的逆向循环概念..
我试图在PgAdmin中使用反向循环来反转数字让'1234'。
DO $$
DECLARE
L_NO VARCHAR(5) := '1234';
L_LEN NUMERIC(5);
L_REV_NO VARCHAR(5);
BEGIN
L_LEN := CHAR_LENGTH(L_NO) ;
RAISE NOTICE 'STRING LENGTH IS %' , L_LEN ;
FOR CNTR IN REVERSE L_LEN..1 LOOP
L_REV_NO = L_REV_NO||SUBSTRING(L_NO,CNTR,1);
END LOOP;
RAISE NOTICE 'NUMBER IS %' ,L_NO ;
RAISE NOTICE 'REVERSE NUMBER IS %' ,L_REV_NO ;
END $$ ;
NOTICE: STRING LENGTH IS 4
NOTICE: NUMBER IS 1234
NOTICE: REVERSE NUMBER IS <NULL>
为什么反向号码为<Null>
。
甚至我检查了SUBSTRING func Synatx它的正确吗?