2010-04-11 12 views

Respuesta

13

Tenga una mirada en

SQL SERVER – Logical Query Processing Phases – Order of Statement Execution

  1. DE
  2. EN
  3. EXTERIOR
  4. DONDE
  5. GROUP BY
  6. CUBO | ROLLUP
  7. TENER
  8. SELECT
  9. DISTINCT
  10. ORDER BY
  11. TOP

También, por alguna buena información ver Logical Query Processing

+0

¿Dónde UNIÓN encaja en este orden? –

+0

@WalterMitty Sé que hizo su pregunta hace mucho tiempo, pero 'UNION' y' UNION ALL' son formas de unir dos consultas separadas, por lo que lo anterior ocurriría para la primera consulta, luego la segunda consulta, luego la 'UNION' de los dos resultados se realizaría. –

2

La respuesta anterior aborda la cuestión pero hay es una excepción al orden mencionado anteriormente

cuando se tiene

seleccione subir n ............

ordenado por

Entonces, por fin se ejecutarán antes de selección. (las entradas se ordenan primero y luego se seleccionan las primeras n entradas)

0

Visite https://msdn.microsoft.com/en-us/library/ms189499.aspx para una mejor explicación.

Los pasos siguientes muestran el orden de procesamiento lógico, o el orden de unión, por una instrucción SELECT. Este orden determina cuándo los objetos definidos en un paso están disponibles para las cláusulas en los pasos posteriores. Por ejemplo, si el procesador de consultas puede unirse a (acceso) las tablas o vistas definidas en la cláusula FROM, estos objetos y sus columnas están a disposición de todos los pasos subsiguientes. Por el contrario, porque la cláusula SELECT es el paso 8, los alias de columna o columnas derivadas definidas en la cláusula que no pueden ser referenciados por precedente cláusulas. Sin embargo, pueden ser referenciados por cláusulas posteriores como la cláusula ORDER BY. Tenga en cuenta que la ejecución física real de la declaración está determinada por el procesador de consultas y el orden puede variar de esta lista.

DE

EN

JOIN

DONDE

GROUP BY

CON EL CUBO CON ROLLUP o

TIENE

SELECT

DISTINCT

ORDER BY

TOP

Cuestiones relacionadas