Oracle 无效标识符错误

     2023-03-27     191

关键词:

【中文标题】Oracle 无效标识符错误【英文标题】:Oracle Invalid Identifier Error 【发布时间】:2015-05-17 19:23:47 【问题描述】:

我知道以前有人问过这个问题,但我查看了其他问题,但我的查询仍然无效。我有一张包含过去 100 年左右的 MLB 击球统计数据的表格,我正在尝试查找球员 ID、本垒打以及该球员在该年(2012 年)本垒打总命中数中的百分比。

查询:

select playerid, hr, hr/sum(hr) over (partition by playerid, yearid)*100 p
from mlbbattingstats 
where yearid=2012 and p != 0
order by hr;

错误:

第 3 行出错: ORA-00904: "P": 无效标识符

我尝试了多个不同的别名并得到相同的错误。如果之前已经回答了我做错的任何帮助,我们将不胜感激和抱歉。

【问题讨论】:

可能重复:***.com/questions/3852831/… 【参考方案1】:

您不能在同一查询级别引用列别名(order by 除外)。您需要将语句包装到派生表中:

select *
from (
  select playerid, hr, hr/sum(hr) over (partition by playerid, yearid)*100 p
  from mlbbattingstats 
  where yearid = 2012 
) 
where p <> 0
order by hr;

【讨论】:

谢谢,这是有道理的,但现在我在第 6 行收到错误错误:ORA-00904: "YEARID": invalid identifier @user3587186:啊对。复制粘贴出错,抱歉。您可以将yearid = 2012 移动到派生表中(我所做的)或将yearid 添加到选择列表中,并在外部查询中将两个 where 条件保持在一起(性能方面,对于这个简单的查询并不重要) 【参考方案2】:

如果p &lt;&gt; 0,那么hr &lt;&gt; 0。因此,您的查询似乎等同于:

select playerid, hr,
       hr/sum(hr) over (partition by playerid, yearid)*100 as p
from mlbbattingstats 
where yearid = 2012 and hr <> 0
order by hr;

您最初的问题是您不能将where 子句中select 中定义的列别名用作同一级别。

【讨论】:

Oracle 无效标识符错误

】Oracle无效标识符错误【英文标题】:OracleInvalidIdentifierError【发布时间】:2015-05-1719:23:47【问题描述】:我知道以前有人问过这个问题,但我查看了其他问题,但我的查询仍然无效。我有一张包含过去100年左右的MLB击球统计数... 查看详情

oracle 忽略子查询中的无效标识符错误

】oracle忽略子查询中的无效标识符错误【英文标题】:oracleignoresinvalididentifiererrorinsubquery【发布时间】:2018-09-1716:21:40【问题描述】:我不明白为什么以下查询有效,尽管子查询给出了“无效标识符”错误。SELECT*FROMaircraftWHEREair... 查看详情

ORACLE ORA-00904: 无效标识符错误

】ORACLEORA-00904:无效标识符错误【英文标题】:ORACLEORA-00904:invalididentifiererror【发布时间】:2020-08-2721:49:25【问题描述】:尝试获取倒数第二部分的状态,但在子查询中的my_p上识别出无效。怎么了?SELECTpartASmy_p,CASEWHEN((SELECTMAX(stat... 查看详情

Oracle 触发器错误,标识符无效

】Oracle触发器错误,标识符无效【英文标题】:ErrorwithOracletrigger,invalididentifier【发布时间】:2012-03-2609:14:04【问题描述】:我的以下DML语句运行良好,我尝试将其设置为触发器,但它不起作用。DML声明UPDATEHOLIDAY_RESERVATIONRSETSUBTOT... 查看详情

奇怪的 Oracle SQL“无效标识符”错误

】奇怪的OracleSQL“无效标识符”错误【英文标题】:WeirdOracleSQL"InvalidIdentifier"error【发布时间】:2011-09-1402:26:15【问题描述】:谁能帮我弄清楚为什么我在cms.CRIME_ID上收到错误:标识符无效selectc.criminal_id,c.first,c.last,cms.CRI... 查看详情

尝试创建表时 Oracle SQL “无效标识符错误”

】尝试创建表时OracleSQL“无效标识符错误”【英文标题】:OracleSQL"invalididentifiererror"whentryingtocreateatable【发布时间】:2019-12-1213:31:35【问题描述】:我已经成功构建了这些表:CREATETABLETables(tnumNUMBER(4)PRIMARYKEY,floorNUMBER(1),CH... 查看详情

我的一个 Oracle Apex 查询出现“无效标识符错误”

】我的一个OracleApex查询出现“无效标识符错误”【英文标题】:I\'mgetting"InvalidIdentifierError"foroneofmyOracleApexQueries【发布时间】:2020-10-1022:31:01【问题描述】:我正在尝试在OracleApex上运行一个脚本,到目前为止,除了最后... 查看详情

ORACLE:具有动态查询的游标 - 为游标字段引发错误“无效标识符”

...ORACLE:具有动态查询的游标-为游标字段引发错误“无效标识符”【英文标题】:ORACLE:Cursorwithdynamicquery-throwserror"invalididentifier"forcursorfield【发布时间】:2016-02-1121:45:46【问题描述】:我有一个逻辑来实现我必须使用动态sq... 查看详情

PL/SQL JAVA ORACLE 错误 ORA-00904: 标识符无效

】PL/SQLJAVAORACLE错误ORA-00904:标识符无效【英文标题】:PL/SQLJAVAORACLEERRORORA-00904:INVALIDIDENTIFIER【发布时间】:2017-04-3019:21:20【问题描述】:当我运行我的程序时出现错误:ORACLEERRORORA-00904:"PACJENT_ODDZIAL":INVALIDIDENTIFIER不知道哪里出了... 查看详情

Oracle DB - ORA-00904:选择时出现“无效标识符”错误

】OracleDB-ORA-00904:选择时出现“无效标识符”错误【英文标题】:OracleDB-ORA-00904:"invalididentifier"erroronselect【发布时间】:2022-01-1505:24:13【问题描述】:我是OracleDB的新手,遇到了一个我不太理解的错误。我有两个表,table1... 查看详情

嵌套 WITH 子查询中的 Oracle SQL 无效标识符错误

】嵌套WITH子查询中的OracleSQL无效标识符错误【英文标题】:OracleSQLinvalididentifiererrorinnestedWITHsubquery【发布时间】:2016-07-2918:27:37【问题描述】:您将在下面找到三个示例表和数据以及一个查询。此示例可能看起来有些做作,但... 查看详情

创建带有外键的表会出现错误 ORA-00904: : oracle 10g 中的无效标识符 [重复]

】创建带有外键的表会出现错误ORA-00904::oracle10g中的无效标识符[重复]【英文标题】:creatingatablewithForeignkeyinitgiveserrorORA-00904::invalididentifierinoracle10g[duplicate]【发布时间】:2019-11-0808:51:49【问题描述】:Imageofthecodewithtable,queryanderro... 查看详情

错误报告:SQL 错误:ORA-00904::无效标识符 00904。00000 - “%s:无效标识符”

】错误报告:SQL错误:ORA-00904::无效标识符00904。00000-“%s:无效标识符”【英文标题】:Errorreport:SQLError:ORA-00904::invalididentifier00904.00000-"%s:invalididentifier"【发布时间】:2016-09-1607:19:34【问题描述】:我正在使用SQLDevelope... 查看详情

分组依据 - SQL Oracle 错误:无效项目

...EM进行分组,但我似乎无法正常工作,ORA-00904:“ITEM”:标识符无效。这是我迄今为止尝试过的:SELECTsum(quantity)ASSUPPLY,TRIM((SELECTITEM_IDFROMINVENTORY_ITEMWH 查看详情

为啥我会收到:[Oracle][ODBC][Ora]ORA-00904:标识符无效

】为啥我会收到:[Oracle][ODBC][Ora]ORA-00904:标识符无效【英文标题】:WhyamIgetting:[Oracle][ODBC][Ora]ORA-00904:invalididentifier为什么我会收到:[Oracle][ODBC][Ora]ORA-00904:标识符无效【发布时间】:2011-04-1716:26:14【问题描述】:当我清楚地识... 查看详情

ORA-00904: sysdate 无效标识符错误

】ORA-00904:sysdate无效标识符错误【英文标题】:ORA-00904:sysdateinvalididentifiererror【发布时间】:2017-05-1910:50:45【问题描述】:我试图在Oracle中运行以下查询,但收到此错误。知道如何解决吗?SELECTDISTINCTt1.p_id"Id",(TO_CHAR("sysdate",\'YYYY\... 查看详情

获取 ORA-00904: : oracle application express 中的标识符无效

】获取ORA-00904::oracleapplicationexpress中的标识符无效【英文标题】:GettingORA-00904::invalididentifierinoracleapplicationexpress【发布时间】:2020-04-2517:42:41【问题描述】:我想在oracleapplicationexpress中创建这个简单的表,但我一直收到错误ORA-00... 查看详情

Oracle 数据库列定义不明确/标识符无效

】Oracle数据库列定义不明确/标识符无效【英文标题】:Oracledatabasecolumnambiguouslydefined/invalididentifier【发布时间】:2019-07-3009:39:39【问题描述】:我尝试编写SQL语句以从某些表中进行选择。但是当我运行它时,我得到一个错误,我... 查看详情