PostgreSQL父子建表查询所有的子数据-利用自定义函数查询
Posted 洛阳泰山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL父子建表查询所有的子数据-利用自定义函数查询相关的知识,希望对你有一定的参考价值。
pgsql 函数查询代码
select find_space_tree_list_by_nodeid('1','1')
查询结果示意图
获取子集函数代码
CREATE OR REPLACE FUNCTION "public"."find_space_tree_list_by_nodeid"("nodeid" varchar, "viewid" varchar)
RETURNS "pg_catalog"."varchar" AS $BODY$
-- Routine body goes here...
DECLARE
sTemp VARCHAR:=nodeId;
sTempChd VARCHAR:=nodeId;
BEGIN
WHILE sTempChd is not null loop
if sTemp<>sTempChd then
sTemp:=concat(sTemp,',',sTempChd);
END IF;
SELECT string_agg(id,'') INTO sTempChd FROM public.t_bim_space where view_id=viewId
and parent_id=ANY (string_to_array(sTempChd,','));
END loop;
RETURN sTemp;
END$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
注意:与mysql函数不同,pgsql的函数名必须是小写,否则会报错!
相关文章推荐
以上是关于PostgreSQL父子建表查询所有的子数据-利用自定义函数查询的主要内容,如果未能解决你的问题,请参考以下文章
oracle和postgresql 递归查询父子关系记录语法区别
用于获取存储在单个表中的 n 级父子关系的 Postgresql 查询