我正在使用以下查询:
Select identifier
from batch_instance
where batch_class_id IN ( Select id
from batch_class
where ROWNUM <2 AND
batch_class_name='abc'
ORDER BY creation_date DESC);
PFB错误:
第1行的错误: ORA-00907:缺少右括号
答案 0 :(得分:1)
子查询(假设它已修复)将仅返回一行。所以它只返回一个id
。在这种情况下,使用IN
条件没有意义,“相等”比较会产生相同的效果。
要选择与名称id
关联的最新'abc'
,您可以使用keep (dense_rank last)
,因此它仍然在一个子查询中完成 - 您不需要嵌套的子查询。类似的东西:
select identifier
from batch_instance
where batch_class_id = ( select max(id) keep (dense_rank last order by creation_date)
from batch_class
where batch_class_name = 'abc'
)
;