我試圖寫它裏面用SELECT語句DECODE將是這樣的:(Oracle)的SELECT(返回多行)內部DECODE
SELECT DECODE(A.name, (SELECT name FROM B WHERE id IN (1000,1001)),'Value1','Value2') FROM A
顯然,如果我裏面DECODE select語句返回多於一行我將得到一個異常「ORA-01427:單行子查詢返回多行」。這是公平的。
我期望獲得不止一行,這是目的,我需要爲所有匹配A.name和Value2的項目顯示Value1。像foreach循環,但在DECODE中。
什麼是正確的做法?
更新: 表A:
+--------------+--------+
|Surname | Name |
+--------------+--------+
| Abc| John |
| Smith| Piter |
| Cook| Ann |
+--------------+--------+
表B:
+--------------+--------+
|ID | Name |
+--------------+--------+
| 1000| John |
| 1001| Piter |
| 2003| Ann |
+--------------+--------+
我希望看到什麼:
值1
值1
值2
請出示表定義,樣本數據和預期產出。 – OldProgrammer
請顯示完整查詢。什麼是A和B,它們之間有什麼關係? – Kacper
您可以在B中擁有多個同名的行嗎? – Aleksej