ORA-00904 对于 Oracle 中的 ORDER BY
ORA-00904 for ORDER BY in Oracle
我不明白这个查询出了什么问题:
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 默认不区分大小写。
所以,当你说
select first_name a from employees
Oracle 将其视为
SELECT FIRST_NAME A FROM EMPLOYEES
但是当你开始使用 "Quotes"...
order by "a"
Oracle 将其视为
ORDER BY "a"
一个<>一个
如果您确保引用的对象也始终大写,这不是问题,这就是为什么您的 "A" 有效但 "a" 无效的原因。
我的建议 - 完全删除对象名称上的引号。
SELECT LAST_NAME,
FIRST_NAME A
FROM EMPLOYEES
ORDER BY A;
我不明白这个查询出了什么问题:
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 默认不区分大小写。
所以,当你说
select first_name a from employees
Oracle 将其视为
SELECT FIRST_NAME A FROM EMPLOYEES
但是当你开始使用 "Quotes"...
order by "a"
Oracle 将其视为
ORDER BY "a"
一个<>一个
如果您确保引用的对象也始终大写,这不是问题,这就是为什么您的 "A" 有效但 "a" 无效的原因。
我的建议 - 完全删除对象名称上的引号。
SELECT LAST_NAME,
FIRST_NAME A
FROM EMPLOYEES
ORDER BY A;