IT-lexikon › Databas › CTE (Common Table Expression)

CTE (Common Table Expression)

Databas In English → Uppdaterad: 2026-07-30

En namngiven, tillfällig resultatmängd definierad med WITH som existerar bara under en fråga. Gör komplexa frågor läsbara genom att bryta upp dem i namngivna steg istället för djupt nästlade subqueries.

Syntax: WITH aktiva AS (SELECT ... WHERE active), summor AS (SELECT ... FROM aktiva ...) SELECT * FROM summor. Vinst: läsbarhet (läs uppifrån och ned som en pipeline), återanvändning (referera samma CTE flera gånger), och rekursion. Rekursiv CTE (WITH RECURSIVE) hanterar hierarkier/grafer — organisationsträd, kommentarstrådar, kortaste väg. Prestandanote: i äldre PostgreSQL (<12) var CTE en "optimization fence" (materialiserades alltid) → kunde vara långsammare än en subquery; från 12 inlinas de när möjligt (MATERIALIZED/NOT MATERIALIZED styr). Standard SQL:1999. Tillsammans med window functions ryggraden i läsbar analytisk SQL.

← Tillbaka till lexikonet