1
我與在其WHERE子句中的一個CASE表達式,像這樣一個遊標工作:SQL CASE表達式返回多個行
SELECT tbl.id
FROM table1 tbl
WHERE tbl.id = CASE
WHEN [some condition]
THEN [a single id number]
ELSE (SELECT tbl2.id
FROM table2 tbl2
WHERE [some other condition]
)
END
這種運作良好,直到子選擇返回多行。如果發生這種情況,會拋出ORA-01427異常。我試圖通過使用IN或ANY語句來彌補這一點,但在我看來,CASE表達式只是無法輸出多個值的集合。
如果可能,如何創建一個像這樣的WHERE子句,其中子選擇可能會返回多行?
我應該補充一點,在這裏不使用PL/SQL塊。 –
您應該將'='更改爲'IN SELECT()' – 2014-03-24 16:10:15