修复错误 ORA-00918

Posted

技术标签:

【中文标题】修复错误 ORA-00918【英文标题】:Fixed Error ORA-00918 【发布时间】:2014-04-14 04:15:11 【问题描述】:

我正在尝试创建 TFIDF 表。以下是我的代码:

CREATE TABLE TF_IDF2 (FILEID, WORD, TFIDF)AS
select TF.FILEID, TF.WORD, (TF.FREQ*B.IDF) AS TFIDF
from TF JOIN IDF B
ON TF.WORD=B.WORD;

错误信息:

SQL 错误:ORA-00918:列定义不明确 00918. 00000 - “列定义不明确”`。

错误指向查询最后一行中的WORD。谢谢。

【问题讨论】:

我删除了丢失的代码行。 当你没有聚合函数时,为什么要使用group by? (如果您确实需要一个,他们还需要指定您在那里使用的表,即group bt TF.WORD;但您似乎没有在这里)。 【参考方案1】:

我的朋友试试这个:

CREATE TABLE TF_IDF2 AS
select TF.FILEID, TF.WORD, (TF.FREQ * B.IDF) AS TFIDF
from TF JOIN IDF B
ON TF.WORD=B.WORD;

【讨论】:

以上是关于修复错误 ORA-00918的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00918: 列定义不明确,使用 DB Link

不确定为啥会出现 ORA-00918 列定义不明确

ORA-00918: 使用数据透视时列定义不明确

ORA-00918 从存储过程返回,但它可以在 SQL 页面中执行查询

exception ORA-00918: 未明确定义列

Oracle 12c - 插入到选择查询中的不明确列,ORA-00918