POSTGRESQL将递归函数转换为循环函数

时间:2015-05-28 09:27:15

标签: postgresql recursion

CREATE OR REPLACE FUNCTION employee(IN emp_id integer)

 RETURNS TABLE(id integer, name text, designation text, salary integer,   man_id integer) AS
$BODY$

BEGIN

RETURN QUERY

WITH recursive manager_hierarchy(e_id,e_name,e_desig,e_sal,m_id) AS

(
select e.id,e.name,e.designation,e.salary,e.man_id FROM emp_table e 
WHERE e.id=emp_id
union
SELECT
rp.id,rp.name,rp.designation,rp.salary,rp.man_id
FROM
manager_hierarchy mh
INNER JOIN emp_table rp ON mh.e_id=rp.man_id
)

SELECT h.e_id,h.e_name,h.e_desig,h.e_sal,h.m_id
FROM manager_hierarchy h;
END;

$BODY$
LANGUAGE plpgsql 

任何人都可以帮助我使用循环

更改相同的程序

0 个答案:

没有答案