Нет никакой разницы между:
WITH CTE_View_Alias AS (
SELECT v.id,
v.column1,
v.column2
FROM VW_View v)
SELECT t.*
FROM CTE_View_Alias t
... и:
SELECT v.id,
v.column1,
v.column2
FROM VW_View v
Возможно, представление не является необходимым, но это не вопрос ...
Нет никакой разницы в производительности между ранее упомянутыми параметрами и производной таблицей:
SELECT x.*
FROM (SELECT v.id,
v.column1,
v.column2
FROM VW_View v) x
CTE является синтаксическим сахаром для производной таблицы, , если не используетсярекурсивная функциональность .
Заключение
Вам нужно будет спросить автора, почему он решил использовать CTE.Возможно, были удалены более сложные операции, и CTE был оставлен как есть в страхе сломать что-то непредвиденное.Или это просто функциональность, которую они хотели использовать ...
Я всегда боюсь, что подобные вопросы слишком абстрагированы / упрощены, чтобы демонстрировать решения.