首先,我必须说我在来到这里之前已经研究过我的问题并且看到了类似的 question here及其所有答案,但不幸的是,它对我没有帮助。
Oracle SQL。
我有:
SELECT
first_name,
salary_dollars,
0.85 * salary_dollars AS salary_euro
FROM
employees
WHERE
0.85 * salary_dollars > 4000;
salary_euro
是我的临时专栏。我想避免在 WHERE
子句中进行双重计算,但是如果我在请求中写入 WHERE salary_euro > 4000
那么我会收到此错误:
ORA-00904: "SALARY_EURO": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 6 Column: 7
最佳答案
绕过此限制的一种方法是使用子查询来创建临时列:
SELECT *
FROM (SELECT first_name,
salary_dollars,
0.85 * salary_dollars AS salary_euro
FROM employees) e
WHERE salary_euro > 4000;
关于sql - 如何在 WHERE 子句中使用临时列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66930005/