A query will fail when a column is aliased and then referenced in the
SELECT col1, col2 AS c2 FROM tbl1 WHERE c2 BETWEEN 2 AND 6
This query will throw the error:
Msg 207, Level 16, State 1, Line 3 Invalid column name 'c2'.
Attempting to reference the aliased column in the
WHERE clause does not work because of the logical query processing taking place. The
WHERE is evaluated before the
SELECT clause. Therefore, the column
c2 does not exist when
WHERE is evaluated.
The correct way to reference the column in this example would be:
SELECT col1, col2 AS c2 FROM tbl1 WHERE col2 BETWEEN 2 AND 6