What\'s the execute order of the different parts of a SQL select statement? Such as
distinct
from
order by
group by
having
multiline function(count,
The above answer addresses the question but there is one exception to the above mentioned order
when you have
select top n ............
order by
Then, order by will be executed before select. ( the entries are ordered first and then the top n entries are selected)
Have a look at
SQL SERVER – Logical Query Processing Phases – Order of Statement Execution
- FROM
- ON
- OUTER
- WHERE
- GROUP BY
- CUBE | ROLLUP
- HAVING
- SELECT
- DISTINCT
- ORDER BY
- TOP
Also, for some good info see Logical Query Processing
Visit https://msdn.microsoft.com/en-us/library/ms189499.aspx for a better explanation.
The following steps show the logical processing order, or binding order, for a SELECT statement. This order determines when the objects defined in one step are made available to the clauses in subsequent steps. For example, if the query processor can bind to (access) the tables or views defined in the FROM clause, these objects and their columns are made available to all subsequent steps. Conversely, because the SELECT clause is step 8, any column aliases or derived columns defined in that clause cannot be referenced by preceding clauses. However, they can be referenced by subsequent clauses such as the ORDER BY clause. Note that the actual physical execution of the statement is determined by the query processor and the order may vary from this list.
FROM
ON
JOIN
WHERE
GROUP BY
WITH CUBE or WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP