Ссылаясь на: -
- Чтобы лучше понять мою ситуацию и SQL, почему эти пункты не разрешены?
Исходя из моего понимания CTE, вся идея создания CTE заключается в том, чтобы вы могли создать временный набор результатов и использовать его в с именем , как обычная таблица в SELECT
, INSERT
, UPDATE
или DELETE
заявления.
Поскольку CTE логически очень похож на представление, оператор SELECT
в вашем запросе CTE должен соответствовать тем же требованиям, которые использовались для создания представления. См. Раздел ** Определения запросов CTE * в следующей ссылке на MSDN
Кроме того, поскольку CTE в основном является именованным набором результатов и может использоваться как любая таблица в операторах SELECT
, INSERT
, UPDATE
или DELETE
, у вас всегда есть возможность использовать различные операторы Вы упомянули, когда используете CTE в любом из этих утверждений.
С учетом
2.Если мне нужно выполнить какую-то рекурсию с использованием некоторых из этих предложений, является ли моя единственная альтернатива написанию рекурсивной хранимой процедуры?
Кроме того, я вполне уверен, что вы можете использовать по крайней мере некоторые из ключевых слов, которые вы упомянули выше в представлении / CTE select . Например: Обратитесь к использованию GROUP BY
в CTE здесь в примере создания простого общего табличного выражения
Может быть, если вы можете предоставить пример сценария того, чего вы пытаетесь достичь, мы можем предложить какое-то возможное решение.