IT-словарь › Базы данных › CTE (обобщённое табличное выражение)

CTE (обобщённое табличное выражение)

Базы данных Svenska → Обновлено: 2026-10-18

Именованный временный результат, заданный через WITH и существующий только в рамках одного запроса. Делает сложные запросы читаемыми: вместо глубоко вложенных подзапросов — именованные шаги.

Синтаксис: WITH active AS (SELECT ... WHERE active), totals AS (SELECT ... FROM active ...) SELECT * FROM totals. Плюсы: читаемость (сверху вниз, как конвейер), повторное использование (на один CTE можно ссылаться много раз) и рекурсия. Рекурсивный CTE (WITH RECURSIVE) обходит иерархии и графы — оргструктуры, ветки комментариев, кратчайшие пути. Нюанс производительности: в старом PostgreSQL (<12) CTE был «барьером оптимизации» (всегда материализовался) и мог быть медленнее подзапроса; с 12-й версии он встраивается, когда возможно (MATERIALIZED/NOT MATERIALIZED управляют этим). Стандарт SQL:1999. Вместе с оконными функциями — основа читаемого аналитического SQL.

← Назад к словарю