Can I use… T131, “Recursive query”


Apache DerbyBigQueryaDb2 (LUW)bH2MariaDBdMySQLOracle DBcePostgreSQLSQL ServercfSQLitewith recursiveunion [distinct]cycleNon-recursive subquery: top-n
  1. Without column list: WITH RECURSIVE query_name AS (SELECT…)
  2. Without keyword recursive • No join in recursive branch—use comma-join (,)
  3. Without keyword recursive
  4. Use cycle … restrict • No using … sub-clause
  5. No using … sub-clause
  6. Workaround: use row_number() over() to implement top-N query

Note

T131 also allows recursive views, which are not yet covered on this page.

Normative References

T131, “Recursive query”, is an optional feature in ISO/IEC 9075:2016-2. It first appeared in SQL:1999.0

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »

Footnotes

  1. SQL:1999, formerly known as SQL3 (Eisenberg, Melton)

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter
“modern SQL” by Markus Winand is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR | CC-BY-NC-ND 3.0 license