Bird
0
0

Why does this recursive CTE cause an error or infinite loop?

medium📝 Debug Q7 of 15
SQL - Common Table Expressions (CTEs)
Why does this recursive CTE cause an error or infinite loop?
WITH RECURSIVE tally AS (SELECT 1 AS num UNION ALL SELECT num + 1 FROM tally) SELECT * FROM tally WHERE num <= 5;
AMissing a stopping condition in the recursive part
BIncorrect anchor member syntax
CUsing UNION instead of UNION ALL
DFiltering rows in the outer query instead of the recursive part
Step-by-Step Solution
Solution:
  1. Step 1: Check recursive part

    The recursive SELECT lacks a WHERE clause to limit recursion.
  2. Step 2: Effect of missing stopping condition

    Without a stopping condition, recursion continues indefinitely causing an error or infinite loop.
  3. Step 3: Filtering in outer query

    Filtering after recursion does not stop recursion itself.
  4. Final Answer:

    Missing a stopping condition in the recursive part -> Option A
  5. Quick Check:

    Recursive part must limit recursion [OK]
Quick Trick: Stopping condition must be inside recursive SELECT [OK]
Common Mistakes:
  • Filtering only in outer query
  • Confusing UNION and UNION ALL
  • Assuming anchor syntax is wrong

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes