Using an Alias column in the where clause in ms-sq

2019-01-11 14:11发布

问题:

I know you cannot use a alias column in the where clause for T-SQL; however, has Microsoft provided some kind of workaround for this?

Related Questions:

  • Unknown Column In Where Clause
  • Can you use an alias in the WHERE clause in mysql?
  • “Invalid column name” error on SQL statement from OpenQuery results

回答1:

One workaround would be to use a derived table.

For example:

select *
from 
   (
   select a + b as aliased_column
   from table
   ) dt
where dt.aliased_column = something.

I hope this helps.



回答2:

Depending on what you are aliasing, you could turn it into a user defined function and reference that in both places. Otherwise your copying the aliased code in several places, which tends to become very ugly and means updating 3+ spots if you are also ordering on that column.