У меня есть следующий запрос
select * from table_1
where Conditions in
(select case when check_condition = 'Y' then 'Condition_1'
else 'N/A' end as Check_condition
from table_2
WHERE id = 1122)
где table_1 содержит значения в столбце Conditions
следующим образом. Условие_1, Условие_2
Это отлично работает и возвращает мне результаты.
я хочу использовать несколько операторов select внутри предложения in
, и я сделал это, как показано ниже.
select * from table_1
where Conditions in (
select ''''||
(select case when check_condition = 'Y' then 'Condition_1'
else 'N/A' end as Check_condition
from table_2
WHERE id = 1122)||''''||','''||
(select case when check_condition = 'Y' then 'Condition_2'
else 'N/A' end as Check_condition
from table_2 WHERE id = 1122)||''''
from dual
)
внутренний запрос (внутри предложения in), дающий мне правильные результаты, как и ожидалось -
'Condition_1','Condition_2'
и когда я копирую и вставляю его в родительский запрос, он отлично работает и показывает результаты.
select * from table_1 where Conditions in ('Condition_1','Condition_2')
Моя проблема в том, что это не дает никаких результатов, когда я использовал второй запрос. Я знаю, что подзапрос вернет результаты, которые должны соответствовать строкам внешнего запроса. Но он показывает мне пустой набор результатов.
Я использую оракул 11g
Может ли кто-нибудь помочь мне .. Спасибо всем заранее.