Sobes.tech
Назад к вопросам
Middle
6

Чем CTE отличается от подзапроса?

Компании, где спрашивали
МВидеоМВидео

Ответ от нейросети

sobes.tech AI

CTE (Common Table Expression) — это именованный временный результат, который можно использовать в основном запросе, а подзапрос — это вложенный запрос внутри другого запроса.

Основные отличия:

  • Читаемость и структура: CTE обычно делают запрос более читаемым и структурированным, особенно при сложных запросах с несколькими уровнями вложенности.
  • Повторное использование: CTE можно использовать несколько раз в основном запросе, подзапрос — нет (если не дублировать).
  • Рекурсия: CTE поддерживают рекурсивные запросы, что невозможно с обычными подзапросами.

Пример CTE:

WITH recent_orders AS (
    SELECT * FROM orders WHERE order_date > CURRENT_DATE - INTERVAL '7 days'
)
SELECT * FROM recent_orders WHERE amount > 100;

В подзапросе аналогично, но вложенность может быть сложнее для восприятия.