Назад к вопросам
МВидео
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;
В подзапросе аналогично, но вложенность может быть сложнее для восприятия.