Я пытаюсь написать DECODE заявление с SELECT, внутри него, который будет выглядеть следующим образом:(оракул) SELECT (который возвращает более одной строки) внутри DECODE
SELECT DECODE(A.name, (SELECT name FROM B WHERE id IN (1000,1001)),'Value1','Value2') FROM A
Очевидно, что если мой оператор выбора в DECODE возвращает более одной строки, я получу исключение "ORA-01427: однострочный подзапрос возвращает более одной строки". Это справедливо.
Я ожидаю получить больше одной строки, это цель, и мне нужно отобразить Value1 для всех элементов, которые соответствуют A.name и Value2 для тех, которые этого не делают. Как петля foreach, но внутри DECODE.
Что это за правильный способ?
Update: Таблица A:
+--------------+--------+
|Surname | Name |
+--------------+--------+
| Abc| John |
| Smith| Piter |
| Cook| Ann |
+--------------+--------+
Таблица B:
+--------------+--------+
|ID | Name |
+--------------+--------+
| 1000| John |
| 1001| Piter |
| 2003| Ann |
+--------------+--------+
Что я ожидаю увидеть:
Value1
Значение1
Value2
Пожалуйста показать таблицу определения, выборочные данные и ожидаемый результат. – OldProgrammer
, пожалуйста, укажите полный запрос. Что такое A и B и существует ли какое-либо отношение между ними? – Kacper
Можете ли вы иметь более одной строки в B с тем же именем? – Aleksej