Vag*_*nos 6 sql sql-server-2008
我有这样的查询:
select
(price1 + price2 + price3) as total_price
from prices
Run Code Online (Sandbox Code Playgroud)
我如何使用计算列total_price来计算其他总数?
select
(price1 + price2 + price3) as total_price,
(price4 + total_price) as total_price2
from prices
Run Code Online (Sandbox Code Playgroud)
这可能吗?
Mar*_*ith 11
不可以引用在同一级别定义的列别名.出现在同一逻辑查询处理阶段的表达式将被评估为在同一时间点.
事情在SQL中"一下子"发生,而不是像从左到右那样在顺序文件/过程语言模型中发生
您可以在CTE中定义它,然后在CTE外重复使用它.
例
WITH T
AS (SELECT ( price1 + price2 + price3 ) AS total_price,
price4
FROM prices)
SELECT total_price,
( price4 + total_price ) AS total_price2
FROM T
Run Code Online (Sandbox Code Playgroud)