Sql Server - пользовательский CTE в подзапросе

Этот вопрос задавался раньше -

Как мы можем использовать CTE в подзапросе на сервере sql?

Единственным предложенным ответом было «Просто определите свой CTE сверху и получите к нему доступ. в подзапросе? "

Это работает, но мне бы очень хотелось иметь возможность использовать CTE в следующих сценариях -

  1. как подзапрос в SELECT

  2. как производная таблица в предложении FROM SELECT

Оба они работают в PostgreSQL. С Sql Server 2005 я получаю «Неправильный синтаксис рядом с ключевым словом 'with'».

Причина, по которой я хотел бы это, заключается в том, что большинство моих запросов строятся динамически, и я хотел бы иметь возможность определять CTE, сохранять его где-нибудь, а затем вставлять его в более сложный запрос по запросу.

Если Sql Server просто не поддерживает такое использование, мне придется его принять, но я не читал ничего, что заявляло бы, что это запрещено.

Кто-нибудь знает, можно ли заставить это работать?

7
задан Community 23 May 2017 в 11:48
поделиться