oracle:in()单行子查询中的ID返回多个行


SELECT FIELD1, FIELD2...
FROM VIEW1
WHERE ID IN (SELECT DISTINCT ID FROM TABLE1 WHERE NAME_FIELD LIKE '%ABC%')
ORDER BY FIELD1, FIELD2;

从视图中选择时,条件之一是此id in(subquery)的位置。标题中的甲骨文错误。

但是,如果我首先运行了子查询,然后用返回的ID替换子查询,它正在工作。

,或者如果我在查询查询中附加了子查询,也可以正常工作。

我做错了什么?谢谢。

使用切割操作:

SELECT FIELD1, FIELD2...
  FROM VIEW1
 WHERE EXISTS (SELECT 1 
                 FROM TABLE1 
                WHERE NAME_FIELD LIKE '%ABC%' 
                  AND VIEW1.ID = TABLE1.ID)
ORDER BY FIELD1, FIELD2;

最新更新