这个问题在这里已经有了答案:
Oracle: Using Pseudo column value in the same Select statement
(3 个回答)
8年前关闭。
我在这个论坛上发现了类似但不准确的问题 - 如果我没有对它们进行足够的搜索,请原谅我。这是我的问题……在 Oracle 中
select ( t.value*2) as inst2, (inst2 * 3) as inst3
from table t;
背后的想法是如果
f() = t.value*2
是一个昂贵的调用,那么我们不需要进行两次......或者是否有我可以使用的替代查询结构(我试图在 CTAS 中实现这一点)提前致谢。
最佳答案
另外一个选项:
with cte as (
select t.value*2 as inst2
)
select
cte.inst2,
(cte.inst2*3) as inst3
from cte
这实际上与 bluefeet 的回复相同,但我认为使用
with
更容易理解-句法。
关于sql - Oracle SELECT - 一列的别名作为另一列的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389338/