Postgres Sql Else如果语法错误 [英] Postgres Sql Else If Syntax error

查看:96
本文介绍了Postgres Sql Else如果语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 PostgreSQL 的新手,我正在尝试制作一个函数,但它显示语法错误

< pre lang =SQL> CREATE OR REPLACE FUNCTION master.test(tehsil text ,district text ,state text ,flag text
RETURNS SETOF refcursor AS
$ BODY $ DECLARE
recordSet refcursor;
BEGIN

OPEN 记录集 FOR
IF flag = ' A' 那么
SELECT 计数(*) FROM population WHERE incomein( 1 2 AND statecode = ' 07 ;
[ELSIF flag = ' B' 那么
SELECT 计数(*) FROM population WHERE incomein( 1 2 AND statecode = ' 07' AND districtcode = ' ';
[ELSIF flag = ' C' 那么
SELECT 计数(*) FROM population WHERE incomein( 1 2 AND statecode = ' 07' AND districtcode = ' ' AND tehsilcode = ' ';
]
]
[ ELSE
SELECT 计数(*) FROM population WHERE incomein( 1 2 ); ]
END IF ;
RETURN NEXT recordSet;
返回;
END ; $ BODY $
LANGUAGE plpgsql

解决方案

BODY


DECLARE
recordSet refcursor;
BEGIN

OPEN 记录集 FOR
IF flag = ' A' 那么
SELECT 计数(*) FROM population WHERE incomein( 1 2 AND statecode = ' 07 ;
[ELSIF flag = ' B' 那么
SELECT 计数(*) FROM population WHERE incomein( 1 2 AND statecode = ' 07' AND districtcode = ' ';
[ELSIF flag = ' C' 那么
SELECT 计数(*) FROM population WHERE incomein( 1 2 AND statecode = ' 07' AND districtcode = ' ' AND tehsilcode = ' ';
]
]
[ ELSE
SELECT 计数(*) FROM population WHERE incomein( 1 2 ); ]
END IF ;
RETURN NEXT recordSet;
返回;
END ;


BODY


I am very new to PostgreSQL and i am trying to make a function in this but it''s showing syntax error

CREATE OR REPLACE FUNCTION master.test(tehsil text, district text, state text,flag text)
    RETURNS SETOF refcursor AS
    $BODY$DECLARE
    recordSet  refcursor;  
    BEGIN

        OPEN  recordset FOR
        IF flag = 'A' THEN
            SELECT Count(*) FROM population WHERE incomein(1,2) AND statecode='07';
	[ ELSIF flag = 'B' THEN
	    SELECT Count(*) FROM population WHERE incomein(1,2) AND statecode='07' AND districtcode = '';
        [ ELSIF flag = 'C' THEN
	    SELECT Count(*) FROM population WHERE incomein(1,2) AND statecode='07' AND districtcode = '' AND tehsilcode = '';
		]
	]
        [ ELSE
           SELECT Count(*) FROM population WHERE incomein(1,2); ]
        END IF;
        RETURN NEXT recordSet;
        RETURN;
    END; $BODY$
    LANGUAGE plpgsql

解决方案

BODY


DECLARE recordSet refcursor; BEGIN OPEN recordset FOR IF flag = 'A' THEN SELECT Count(*) FROM population WHERE incomein(1,2) AND statecode='07'; [ ELSIF flag = 'B' THEN SELECT Count(*) FROM population WHERE incomein(1,2) AND statecode='07' AND districtcode = ''; [ ELSIF flag = 'C' THEN SELECT Count(*) FROM population WHERE incomein(1,2) AND statecode='07' AND districtcode = '' AND tehsilcode = ''; ] ] [ ELSE SELECT Count(*) FROM population WHERE incomein(1,2); ] END IF; RETURN NEXT recordSet; RETURN; END;


BODY


这篇关于Postgres Sql Else如果语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆