此问题已在此处有答案:
invalid identifier error in oracle due to column alias(2个答案)
5天前关闭。
在我的查询中,我有一个case
。我想在相同的SELECT
中(重新)使用结果,因此我将其命名为AANTAL
。不幸的是,这不起作用,因为它说值AANTAL
不存在。我也尝试在WHERE
中使用AANTAL
,但这也导致了同样的问题。看起来我根本不能重用命名的“mutations”(比如IF
语句等)。
当我们在给定的基础设施上工作时,我不能说我们使用的是哪个DB引擎,只能说它是Oracle数据库。当我没记错的时候,像这样的东西在另一个项目中的MySQL上工作,所以我认为它与Oracle有关。
如何在同一查询的SELECT
或WHERE
中重用CASE
和IF
的结果(在我们的Oracle环境中)。
查询示例:
SELECT DISTINCT KLANT
,CASE WHEN SPAAK > WIEL
THEN 10
ELSE 5
END AS AANTAL
,AANTAL * 1.1 RESULT
FROM DELTA.FIETS
1条答案
按热度按时间kognpnkq1#
不能在定义SQL查询的同一级别中重用该查询的别名。这意味着你必须重复这个逻辑。一种简洁的处理方法是使用一个公共表表达式: