Oracle SQL IN子句对Subselect抛出错误

Oracle SQL IN子句对Subselect抛出错误,sql,oracle,greatest-n-per-group,in-clause,ora-00600,Sql,Oracle,Greatest N Per Group,In Clause,Ora 00600,所以我的问题是: 我得到了这个SQL语句 SELECT a.ID,a.CONTENTOF FROM MLMDATA.PV_STORAGE a WHERE 1=1 AND ID IN (113312,114583,114581,113472,114585,114580,113314) AND a.SEQ = (SELECT MAX(b.SEQ) FROM MLMDATA.PV_STORAGE b where a.ID = b.ID) 但我现在的问题是,我得到了一个错误: ORA-0060

所以我的问题是: 我得到了这个SQL语句

SELECT a.ID,a.CONTENTOF 
FROM MLMDATA.PV_STORAGE a
WHERE 1=1  
AND ID IN (113312,114583,114581,113472,114585,114580,113314)
AND a.SEQ = (SELECT MAX(b.SEQ) FROM MLMDATA.PV_STORAGE b where a.ID = b.ID) 
但我现在的问题是,我得到了一个错误:

ORA-00600: Internal Error Code, Arguments: [qernsRowP], [1], [], [], [], [], [], [], [], [], [], []
我似乎找不到一种方法来选择这些ID,其中只选择了最高的序列。。。。 我已经创建了一个视图,只显示最高的SEQ,但这不起作用。。。 我有点沮丧,因为据我所知,SQL以前工作过,但突然不工作了


有人知道问题可能是什么吗?

请尝试以下查询:

SELECT a.ID,a.CONTENTOF FROM MLMDATA.PV_STORAGE a
INNER JOIN
    (SELECT ID, CONTENTOF, MAX(SEQ) AS SEQ FROM MLMDATA.PV_STORAGE 
    where ID IN (113312,114583,114581,113472,114585,114580,113314)
    GROUP BY ID, CONTENTOF) b 
ON a.id = b.id AND a.SEQ = b.SEQ

请尝试此查询:

SELECT a.ID,a.CONTENTOF FROM MLMDATA.PV_STORAGE a
INNER JOIN
    (SELECT ID, CONTENTOF, MAX(SEQ) AS SEQ FROM MLMDATA.PV_STORAGE 
    where ID IN (113312,114583,114581,113472,114585,114580,113314)
    GROUP BY ID, CONTENTOF) b 
ON a.id = b.id AND a.SEQ = b.SEQ
尝试一个窗口功能:

select id, contentof
from (
  select id, contentof, 
         row_number() over (partition by id order by seq desc) as rn
  FROM MLMDATA.PV_STORAGE a
  where id IN (113312,114583,114581,113472,114585,114580,113314)
) 
where rn = 1;
尝试一个窗口功能:

select id, contentof
from (
  select id, contentof, 
         row_number() over (partition by id order by seq desc) as rn
  FROM MLMDATA.PV_STORAGE a
  where id IN (113312,114583,114581,113472,114585,114580,113314)
) 
where rn = 1;


这只是我查询的一个简短版本。。。我试过了,得到的错误信息与以前相同:-(@Sunrunner-我忘了添加group by子句,您能检查更新的查询吗?@Md.SumanKabir您是否尝试了您发布的查询。我会说您尝试了这些内容,然后发布。添加group by将如何解决此问题。@XING他的查询对我来说非常有用!非常感谢您,我将永远不会使用内部连接代替两个where子句。@Sunrunner我的评论是关于他以前版本的答案。如果最新版本有效,那么代替说谢谢,您可以接受并将此答案标记为accpted。阅读本文这只是我查询的一个简短版本…我尝试了它,得到了与以前相同的错误消息:-(@Sunrunner-我忘了添加group by子句,您能检查更新的查询吗?@Md.SumanKabir您是否尝试了您发布的查询。我会说您尝试了这些内容,然后发布。添加group by将如何解决此问题。@XING他的查询对我来说非常有用!非常感谢您,我将永远不会使用内部连接代替两个where子句。@Sunrunner我的评论是关于他以前版本的答案。如果最新版本有效,那么在说“谢谢”时,您可以接受并将此答案标记为“已接受”。阅读此文,您可以提供一些示例数据和预期输出吗?您似乎有一些实际问题。请尝试用h仅提交一个ID?例如:和ID=113312@RenatoAfonso如果括号中只有一个ID,例如“和(113312)中的ID”,我可以毫无问题地使用上述SQL如果在in子句中只添加了另一个值,则会出现错误?您可能需要向DBA检查是否有损坏的数据文件。@RenatoAfonso是的,如果我只在in子句中添加了另一个值,则语句会出现故障。您能提供一些示例数据和预期的输出吗?看起来您确实有问题。可以吗请尝试将IN子句替换为仅归档一个ID?例如:和ID=113312@RenatoAfonso如果括号中只有一个ID,例如“和(113312)中的ID”,我可以毫无问题地使用上述SQL如果在in子句中只添加另一个值,则会出现错误?如果数据文件已损坏,则可能需要与DBA联系。@RenatoAfonso是的,如果我只在in子句中添加另一个值,则该语句将崩溃。