【发布时间】:2017-04-26 14:44:09
【问题描述】:
我从这样一个查询开始:
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)
上面的查询给了我重复的记录,所以我添加了DISTINCT关键字:
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)
第二个查询给了我以下错误:
ORA-00932:不一致的数据类型:预期 - 得到 CLOB
- 00000 - “不一致的数据类型:预期的 %s 得到了 %s”
我终于更正了查询并通过将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 关键字会突然出现问题?
【问题讨论】: