Sql-Standard

如何從投影內的投影中引用列別名?

  • December 19, 2019

投影 ( 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,我可能有一些從averageetc 建構的函式,而不是 ,我將其聲明為列別名。

如何在投影子句中使用這些別名?

解決這個問題的常用方法是使用派生表(也稱為子查詢):

select x, y, x/y as markup
from (
 select sellprice as x, cost as y
 from mytable
) as t;

引用自:https://dba.stackexchange.com/questions/241251