ORA-00904,用于Oracle中的ORDER BY。

问题描述 投票:2回答:1

我不明白这个查询出了什么问题。

    select last_name, first_name a from employees
order by "a";

输出是:

ORA-00904: "a": invalid identifier

然而,这个查询工作和排序的结果由first_name升序。

    select last_name, first_name a from employees
order by "A";
oracle sql-order-by oracle-sqldeveloper
1个回答
2
投票

Oracle默认情况下是不区分大小写的。

所以,当你说

select first_name a from employees

甲骨文认为,这是

SELECT FIRST_NAME A FROM EMPLOYEES

但当你开始使用 "引号 "时... ...

order by "a"

甲骨文将其视为

ORDER BY "a"

a <> A

如果你确保你的引号对象也总是大写,这就不是一个问题,这就是为什么你的 "A "能用,而你的 "a "不能用。

我的建议是--完全去掉对象名上的引号。

SELECT LAST_NAME,
       FIRST_NAME A
  FROM EMPLOYEES
 ORDER BY A;

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.