Sie können eine benutzerdefinierte Reihenfolge mit case when
definieren -Klausel und verwenden Sie dann das analytische max()
. Dies funktionierte für die angegebenen Beispiele:
update t1 set age = (
select max(age) keep (dense_rank last
order by case when age = 'Over 75' then 1
when age = '66-74' then 2
when age = 'Under 65' then 3
when age = '25-35' then 4
end)
from t1 tx where tx.name = t1.name )