2013-03-07 72 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