是否可以在sql 2008中不使用子查询的情况下选择列别名?
*****我想做什么:******
Select col1*col2 as NewColumn, NewColumn*col3 from table
当我尝试这个时虽然我收到错误:
列名称无效' NewColumn'
****我现在在做什么而不是*****
Select Newcolumn*col3 from (Select col1*col2, col3 from mytable) Q1
我希望在可能的情况下避免使用子查询,因为我正在加入许多表并希望使查询更具可读性。
也许还有更好的方法可以做到这一点?
提前致谢。
答案 0 :(得分:1)
您可以使用子查询或CTE。 。 。或者,如果你真的想要,outer apply
:
select x.NewColumn, x.NewColumn * col3
from . . . cross apply
(select col1*col2 as NewColumn) x;
答案 1 :(得分:0)
为什么你可以轻松地做到这一点,
试试这个,
Select col1*col2 as NewColumn, col1*col2*col3 as NewColumn2 from table
希望这会有所帮助。