Вы можете использовать один из следующих вариантов:
with t(colA,ColB) as
(
select 1,'XX' from dual union all
select 2,'XX' from dual union all
select 3,'XX' from dual union all
select 4,'XX' from dual
)
select ColB
from t
where ColumnB = 'XX' and rownum = 1;
или
select ColB from
(
with t(colA,ColB) as
(
select 1,'XX' from dual union all
select 2,'XX' from dual union all
select 3,'XX' from dual union all
select 4,'XX' from dual
)
select ColB,
row_number() over (order by ColB) as rn
from t
)
where ColumnB = 'XX' and rn=1;
или, если ваша версия БД 12c
, она также работает:
with t(colA,ColB) as
(
select 1,'XX' from dual union all
select 2,'XX' from dual union all
select 3,'XX' from dual union all
select 4,'XX' from dual
)
select ColB
from t
where ColumnB ='XX'
fetch {first|next} 1 {row|rows} only;
предпочтительным является одно из ключевых слов first
или next
и row
или rows
.