/ / Como posso escrever uma cauda recursiva usando a linguagem Plpgsql? - postgresql, recursão

Como posso escrever uma cauda recursiva usando a linguagem Plpgsql? - postgresql, recursão

Algum post disse que o CTE do PostgreSQL é essencialmente iterações. Gostaria de saber como escrever uma consulta usando recursão de cauda e linguagem plpgsql?

Respostas:

0 para resposta № 1
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;