RETURN result; 代码语言:txt 复制 函数的完整示例代码如下: 代码语言:sql 复制 CREATEORREPLACEFUNCTIONget_users()RETURNSTABLE(idINTEGER,nameVARCHAR(50),emailVARCHAR(50))AS$$DECLAREresult RECORD;BEGINSELECT*INTOresultFROMusers;RETURNQUERYSELECT*FROMresult;END;$$LANGUAGEplpgsql; ...
CREATE OR REPLACE FUNCTION skytf.func_test_result_query_single ( in_id integer) RETURNSSETOF varcharas $$ DECLARE v_rec RECORD; BEGIN return query ( (select name from test_result1 where id = in_id) union (select name from test_result2 where id = in_id) ); return; END; $$ LANGUA...
RETURNQUERY query;RETURNQUERYEXECUTEcommand-string[USING expression [, ...]]; 4|24.1 RETURN QUERY命令 将一条查询的结果追加到一个函数的结果集中。 CREATEORREPLACEFUNCTIONgetAllFoo2()RETURNSSETOF fooAS$$DECLAREr foo%rowtype;BEGINRETURNQUERYSELECT*FROMfooWHEREfooid>0;END$$ LANGUAGE PLPGSQL; 4|34.2...
CREATEORREPLACEFUNCTION"public"."func1"()RETURNSSETOF"public"."a"AS$BODY$BEGINreturnquery select a.id,a.name from a limit2;return;END$BODY$LANGUAGEplpgsqlSTABLECOST100ROWS1000 得到的结果如下图。 期中return query还可以使用return next。具体语法是: 代码语言:javascript 代码运行次数:0 运行 AI代码...
CREATE OR REPLACE FUNCTION public.myfunction() RETURNS TABLE(start_vid bigint, end_vid bigint, agg_cost double precision) LANGUAGE plpgsql AS $function$ DECLARE --declarations BEGIN RETURN QUERY SELECT * FROM pgr_dijkstraCost( 'SELECT gid as id, * FROM ways as r, (SELECT ST_Expand(ST_Ex...
CREATE OR REPLACE FUNCTION f_login_user(p_login_name in character varying, p_login_passwd in character varying) RETURNS refcursor AS $BODY$ DECLARE p_user_cur refcursor; BEGIN OPEN p_user_cur FOR SELECT * FROM t_user WHERE login_name = p_login_name AND login_passwd = p_login_passwd;...
pg_catalog.pg_get_function_result(p.oid) as "Result data type", pg_catalog.pg_get_function_arguments(p.oid) as "Argument data types", CASE p.prokind WHEN 'a' THEN 'agg' WHEN 'w' THEN 'window' WHEN 'p' THEN 'proc' ELSE 'func' ...
This SQL query uses the unnest() function to expand the array [1, 2] into individual rows. Each element of the array will occupy its own row in the result set, resulting in two rows: one for the element 1 and another for the element 2. ...
/* actual function, if above is a wrapper */ struct PlanState *lefttree; /* input plan tree(s) */ struct PlanState *righttree; List *subPlan; /* SubPlanState nodes in my expressions */ TupleDesc ps_ResultTupleDesc; /* node's return type */ TupleTableSlot *ps_ResultTupleSlot; /*...
node->choose_next_subplan(node) && node->as_nasyncremain == 0) return ExecClearTuple(node->ps.ps_ResultTupleSlot); // 进入下一次循环 } 然后我们进一步分析上面的代码中用到的几个异步执行函数。 ExecAppendAsyncBegin 该函数用于向所有合法的异步子计划请求元组。由于是异步执行,因此只管发送请求,不管...