Этот вопрос задавался раньше -
Как мы можем использовать CTE в подзапросе на сервере sql?
Единственным предложенным ответом было «Просто определите свой CTE сверху и получите к нему доступ. в подзапросе? "
Это работает, но мне бы очень хотелось иметь возможность использовать CTE в следующих сценариях -
как подзапрос в SELECT
как производная таблица в предложении FROM SELECT
Оба они работают в PostgreSQL. С Sql Server 2005 я получаю «Неправильный синтаксис рядом с ключевым словом 'with'».
Причина, по которой я хотел бы это, заключается в том, что большинство моих запросов строятся динамически, и я хотел бы иметь возможность определять CTE, сохранять его где-нибудь, а затем вставлять его в более сложный запрос по запросу.
Если Sql Server просто не поддерживает такое использование, мне придется его принять, но я не читал ничего, что заявляло бы, что это запрещено.
Кто-нибудь знает, можно ли заставить это работать?