投影 ( select
) 值的计算是有用且常见的。然而,在投影中声明的列别名不能在那里使用。
select sellprice as x, cost as y, x/y as markup
from mytable
给出一个错误。
我可以做到这一点
select sellprice as x, cost as y, sellprice/cost as markup
from mytable
as
但这是一个简单的例子:我们通常为复杂的情况声明列别名。例如cost
,我可能有一些从average
etc 构建的函数,而不是 ,我将其声明为列别名。
如何在投影子句中使用这些别名?
解决这个问题的常用方法是使用派生表(也称为子查询):