如何使用Plpgsql语言编写尾递归?

时间:2016-04-22 08:24:01

标签: postgresql recursion

有些帖子称PostgreSQL的CTE本质上是迭代,我想知道如何使用尾递归和plpgsql语言编写查询?

1 个答案:

答案 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;