我从这样一个查询开始:
SELECT A.*
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.YEAR = B.YEAR
WHERE A.ID IN (SELECT ID FROM TABLE_B)
SELECT DISTINCT A.*
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.YEAR = B.YEAR
WHERE A.ID IN (SELECT ID FROM TABLE_B)
通过将WHERE
子句中的条件移动到inner join
,我最终更正了查询并消除了重复记录,如下所示:
SELECT A.*
FROM TABLE_A A
INNER JOIN TABLE_B B
ON A.YEAR = B.YEAR
AND A.ID = B.ID
我只是不明白为什么第二个查询不起作用。为什么在这里添加distinct
关键字会突然出现问题?
这不是一个特别的enlightning错误消息,但这是因为对LOB的限制,其中包括:
>
不能在查询的ORDER BY子句、查询的GROUP BY子句或聚合函数中指定LOB列。
不能在SELECT中指定LOB列。..区分或选择...唯一语句或在联接中。但是,您可以在select...中指定对象类型列的LOB属性。DISTINCT语句、使用UNION的查询,或者在列的对象类型上定义了MAP或ORDER函数时使用减集运算符。
SQL> select distinct col from (select to_clob('test') as col from dual);
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got CLOB
如果只列出非CLOB列,则可以使用distinct
,而不是使用a.*
,后者包括table_a
中的一个CLOB列。
您可以解决这个问题,但正确的做法是更正查询以消除重复项。必须将distinct
添加到查询中,这通常是错误的信号,您正在修复症状而不是原因。
我正在user_views上运行一个查询。“TEXT”列是LONG数据类型的。所以,当我在where子句中使用该列时,我得到了预期的错误。 错误:ORA-00932:不一致的数据类型:预期数过长 查询是 这个怎么解决?
我有这个查询我试图运行,但我一直遇到这个错误。我正在尝试执行一个子句,将数据(BLOB列)与:var2(这是一个blob对象)进行比较。 这是我的密码。 对于为什么我会得到这个错误有什么建议吗? 我正在将与进行比较,这不是很好吗? 谢谢
思维方式 逻辑是,如果订单被取消,则返回0,否则返回欠款-支付价值 小查询 获取错误 ORA-00932:不一致的数据类型:预期的字符数为00932。00000-“不一致的数据类型:预期的%s得到了%s”*原因: *操作:第25行错误列:58
我在ubuntu 14.04LTS上使用oracle 11g。我有一个名为成员的表,我由以下sql创建, 后来我更新了这个表格, 现在,当我运行“DESC members”时,它会显示结果, 最后,我运行了这样的插入sql, 它显示了错误, 第1行错误:ORA-00932:数据类型不一致:预期数字为二进制 有人能帮我解决问题吗?而且我也不确定在这个过程中我是否可以添加图像或路径的二进制文件。有人能