2013-03-07 74 views
1

我越来越ORA-01427: single-row subquery returns more than one row错误,当我打开运行以下查询,任何想法如何解决这个问题?或者你认为我可能不得不写一个光标来解决这个问题?请帮忙!我可以得到一个子查询返回多个记录吗?

SLECT DISTINCT J.NAME 
FROM Q_jobs j, xx_po x 
WHERE j.name IN 
       CASE 
        WHEN x.name IS NOT NULL THEN 
         (select name from xx_po)     
       ELSE 
         (SELECT DISTINCT j.name 
         FROM per_jobs 
         WHERE j.name not LIKE '%Des%') 
       END 
ORDER BY J.NAME 
+0

什么是你想获得? – 2013-03-07 18:21:16

+0

我认为你需要围绕'CASE ... END'结构使用圆括号。 – 2013-03-07 18:23:37

+0

返回多个记录的子查询是一个必须连接到查询其余部分的RELATION。 – 2013-03-07 18:29:19

回答

1

试试这个)

SELECT DISTINCT J.NAME 
FROM Q_jobs j, xx_po x 
WHERE (x.name IS NOT NULL and j.name IN (select name from xx_po)) 
    or (x.name IS NULL and j.name IN (
         SELECT DISTINCT j.name 
         FROM per_jobs 
         WHERE j.name not LIKE '%Des%')) 
ORDER BY J.NAME