El HAVING
la cláusula se evalúa antes de SELECT
- por lo que el servidor aún no conoce ese alias.
-
Primero, el producto de todas las tablas en el
FROM
se forma la cláusula. -
El
WHERE
luego se evalúa la cláusula para eliminar las filas que no satisfacen la condición_búsqueda. -
A continuación, las filas se agrupan usando las columnas en el
GROUP BY
cláusula. -
Luego, los grupos que no satisfagan la
search_condition
en elHAVING
cláusula se eliminan. -
A continuación, las expresiones en el
SELECT
se evalúa la lista de destino de declaraciones. -
Si el
DISTINCT
palabra clave presente en la cláusula de selección, ahora se eliminan las filas duplicadas. -
La
UNION
se toma después de evaluar cada subselección. -
Finalmente, las filas resultantes se ordenan de acuerdo con las columnas especificadas en el
ORDER BY
cláusula. -
TOP
se ejecuta la cláusula.
Espero que esto responda a su pregunta. Además, explica por qué el alias funciona en ORDER BY
cláusula.