文档解释
ORA-02324: more than one column in the SELECT list of THE subquery
Cause: More than one column was selected in the THE subquery.
Action: Specify only one column in the SELECT list of the THE subquery and retry the operation.
ORA-02324错误,又称为“多余的列超出了SELECT列表中的子查询”。当子查询的select列表中包含一个或多个列时,会发生此错误。
官方解释
“more than one column specified in the select list of the subquery”
常见案例
SQL> Select a.id,b.name
4 from tab_a a
5 where a.id not in (Select id1, name2 from tab_b);
错误报告:
ORA-02324: more than one column in the SELECT list of the subquery
正常处理方法及步骤
1. 首先检查子查询中的SELECT,确保只有一列被指定。
2. 如果select列表中需要获取多列,可以使用以下方法:
a. 使用连接来替代子查询,如:
SELECT a.id, b.name
FROM tab_a a
LEFT JOIN tab_b b
ON a.id1 = b.id1
WHERE b.name2 IS NULL;
b. 使用case语句
SELECT a.id,
CASE WHEN (SELECT b.name2 from tab_b b where b.id1 = a.id1)
IS NOT NULL
THEN (SELECT b.name2 from tab_b b where b.id1 = a.id1)
ELSE b.name END
FROM tab_a a;