Оператор WITH в SQL позволяет упростить сложные запросы за счёт создания временного общего табличного выражения (Common Table Expression, CTE), которое можно затем включить в запрос. 15
Некоторые возможности упрощения запросов с помощью CTE:
- Разделение сложных запросов на простейшие составляющие. 1 Это особенно полезно при запросах с большим количеством соединений и вложенных подзапросов. 1
- Улучшение читабельности запросов. 3 Это происходит за счёт сокрытия больших и сложных запросов в созданные именованные выражения, которые потом используются в основном запросе. 3
- Оптимизация производительности. 1 Использование WITH помогает избежать дублирования подзапросов. 1 Подзапрос рассчитывается только один раз, но может использоваться сколько угодно раз в основном запросе. 1
- Облегчение обслуживания и отладки SQL-кода. 1 При модификации только одного блока запроса снижается вероятность возникновения ошибок, которые могут нарушить работу всего SQL-кода. 1