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的函数名必须是小写,否则会报错!

相关文章推荐

《MYSQL 父子建表查询所有的子数据-利用自定义函数查询》

以上是关于PostgreSQL父子建表查询所有的子数据-利用自定义函数查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle和postgresql 递归查询父子关系记录语法区别

MySQL递归查询,实现上下级联查,父子级查询

用于获取存储在单个表中的 n 级父子关系的 Postgresql 查询

在 postgreSQL 中创建表

如何从 PostgreSQL 的子查询中选择包含值数组的列?

(待续)进程控制---父子进程之间的复制