SQL解答
递归WITH:
WITH h(n,path,ended) AS (
SELECT 1,CAST('1->2' AS VARCHAR2(2000)),2 FROM DUAL
UNION ALL...SELECT n+1
,path
||',1->'||DECODE(ended,2,3,2)||','
||TRANSLATE(path,'123',DECODE...(ended,2,'231','312'))
,DECODE(ended,2,3,2)
FROM h
WHERE n<:N
)
SELECT POWER(2,n)-1 AS steps,...FROM DUAL)
MODEL RETURN UPDATED ROWS
DIMENSION BY (1 n)
MEASURES (path,ended)
RULES ITERATE(...,'
||TRANSLATE(path[1],'123',DECODE(ended[1],2,'231','312')),
ended[1]=DECODE(ended[1],2,3,2