0

Why can’t I use my aliased column in the WHERE clause?

A query will fail when a column is aliased and then referenced in the WHERE clause.

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

Norbert Krupa

Technical Consultant

Leave a Reply

Your email address will not be published. Required fields are marked *