别人原一个问帖,我用这个方法解决,觉得有点笨啦,哈哈
with tt as (select 1 B from dual
UNION ALL
select 4 b from dual
UNION ALL
select 8 b from dual
UNION ALL
select 9 b from dual
UNION ALL
select 12 from dual)
select b
from (select b,row_number() over(order by dbms_random.value) rn from tt)
where rn=1