有些帖子称PostgreSQL的CTE本质上是迭代,我想知道如何使用尾递归和plpgsql语言编写查询?
答案 0 :(得分:0)
WITH RECURSIVE zzz AS (
SELECT 11::integer AS val
UNION ALL
SELECT CASE WHEN (zzz.val %2 = 1) THEN 3*zzz.val+1 ELSE zzz.val / 2 END AS val
FROM zzz
WHERE zzz.val <> 1
)
SELECT * FROM zzz;