В недавнем проекте SQL Server 2008 R2 я столкнулся с множеством запросов, в которых были внешние имена Select with Field, которые точно совпадали с именами полей из Select Statement в нем. Затем - после последней скобки вокруг внутреннего запроса - было предложение where.Причины выбора из заявления о выборе?
E.g. [Псевдокод]
Select Field1, Field2, Field3
From
(
Select Field1, Field2, Field3
From Table1
Inner Join Table2 ON . . . multiple joins . . .
) As A
Where Field 1 = SomeValue AND Field 2 <> SomeOtherValue
Есть ли польза для обертывания внутреннего Выберите заявление во внешнем заявлении Выберите, а не просто добавление ИНЕК к концу внутреннего оператора SELECT?
Я должен добавить, что некоторые из полей во внутреннем Select состоят из Case Casements. .
CASE
WHEN Year(tbl.[somedate]) = #### THEN NULL
ELSE tbl.[someotherdate]
END AS Field2
Спасибо!
Возможно, в более ранней версии, возможно, был UNION ALL. –
Взгляните на этот ответ, демонстрирующий поля псевдонимов в производной таблице. http://stackoverflow.com/questions/2654750/multiple-aggregate-functions-in-one-sql-query-from-the-same-table-using-differen/2654867#2654867 – Jeremy
Если кто-то создал внутренний запрос, и вы не хотел возиться с ним, это хороший способ обернуть его. – ergonaut