Sql-Standard
如何從投影內的投影中引用列別名?
投影 (
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 建構的函式,而不是 ,我將其聲明為列別名。如何在投影子句中使用這些別名?
解決這個問題的常用方法是使用派生表(也稱為子查詢):
select x, y, x/y as markup from ( select sellprice as x, cost as y from mytable ) as t;