SQLОбщие выражения таблицы


Синтаксис

  • WITH QueryName [(ColumnName, ...)] AS (
    ВЫБРАТЬ ...
    )
    SELECT ... FROM QueryName ...;

  • С RECURSIVE QueryName [(ColumnName, ...)] AS (
    ВЫБРАТЬ ...
    СОЮЗ [ВСЕ]
    SELECT ... FROM QueryName ...
    )
    SELECT ... FROM QueryName ...;

замечания

Официальная документация: статья WITH

Выражение общей таблицы - это временный набор результатов, и это может быть результатом сложного суб-запроса. Он определяется с помощью предложения WITH. CTE улучшает читаемость и создается в памяти, а не в базе данных TempDB, где создается переменная Temp Table и Table.

Ключевые понятия общих табличных выражений:

  • Может использоваться для разбивки сложных запросов, особенно сложных объединений и подзапросов.
  • Является способом инкапсуляции определения запроса.
  • Сохранять только до тех пор, пока не будет запущен следующий запрос.
  • Правильное использование может привести к улучшению как качества кода, так и поддерживаемости и скорости.
  • Может использоваться для ссылки на результирующую таблицу несколько раз в одном выражении (исключить дублирование в SQL).
  • Может быть заменой для представления, когда общее использование представления не требуется; то есть вам не нужно сохранять определение в метаданных.
  • Будет выполняться при вызове, а не при определении. Если CTE используется несколько раз в запросе, он будет запускаться несколько раз (возможно, с разными результатами).

Общие выражения таблицы Связанные примеры