[identity profile] langsamer.livejournal.com posting in [community profile] useful_faq

Дано: select my_val from my_table where my_condition;
Запрос может вернуть одну строку (скажем, XYZ) - случай 1, может не вернуть ни одной строки - случай 2, в зависимости от my_condition. Для дальнейшей обработки мне нужно, чтобы он всегда(!) возвращал одну строку - с XYZ, в первом случае и с NULL во втором. Как мне модифицировать имеющийся запрос для достижения цели? Oracle 11g, буде поможет...

Date: 2013-05-21 08:26 am (UTC)
From: [identity profile] feddkraft.livejournal.com
select max(my_val) from my_table where my_condition

пойдет? =)

Date: 2013-05-21 08:29 am (UTC)
From: [identity profile] yurik-70.livejournal.com
select my_val from my_table where my_condition=1234
UNION
select NULL as my_val from sus.dual where not exists (select my_val from my_table where my_condition=1234)

Date: 2013-05-21 08:36 am (UTC)
From: [identity profile] yurik-70.livejournal.com
Он более общий. Когда на выходе может быть более 1 строки. Если 0 строк то NULL