【发布时间】:2016-09-14 16:05:25
【问题描述】:
有没有办法放
WITH RECURSIVE cte(path) AS ( --Recursively call on path (Works for every length)
SELECT array[r.term1_id, r.term2_id] AS path
FROM temp_table r
LEFT JOIN temp_table r0 ON r0.term1_id = r.term2_id
WHERE r0.term2_id IS NULL
UNION ALL
SELECT r.term1_id || c.path
FROM cte c
JOIN temp_table r ON r.term2_id = c.path[1]
),
max_len AS (
SELECT max(array_length(path, 1)) max_len
FROM cte
)
SELECT array_to_string(fill_with_last_element(path, max_len), ',' , '*')
FROM cte
CROSS JOIN max_len
ORDER BY path;
进入存储过程?
我想让这个函数成为一个存储过程。
fill_with_last_element(path, max_len)
函数是否已经在数据库中,一个存储过程可以调用另一个存储过程吗?
【问题讨论】:
标签: stored-procedures postgresql-9.5