У меня есть следующий сценарий (таблица ниже), где я хотел бы выбрать 'X' или 'Y' в зависимости от того, являются ли они NULL или нет.
X Y pick
null not null Y
not null not null X
not null null X
строки, содержащие данные 'X'и' Y 'или UNION ALLed, как показано ниже:
select 'X' as a
union all
select 'Y' as a
Поэтому я попытался получить следующий SQL, но не уверен насчет части "rownum <= 1".Это будет работать (для случая, когда X и Y не равны NULL) только в том случае, если UNION ALL сохранит порядок, в котором я запрашиваю две строки. </p>
select a from
(
select 'X' as a
union all
select 'Y' as a
) where a is not null and rownum<=1;
select a from
(
select null as a
union all
select 'Y' as a
) where a is not null and rownum<=1;
select a from
(
select 'X' as a
union all
select null as a
) where a is not null and rownum<=1;
Является ли вышеуказанный правильный способ решить эту проблему?,Любое понимание будет высоко ценится