I allmänhet i relationsdatabaser är ordningen för utvärdering inte definierad, så det är möjligt att select
funktioner anropas före where
klausul filtrerar data. Jag vet att detta är fallet i SQL Server. Här är ett inlägg som antyder att samma sak kan hända i Oracle.
case
påståendet faller dock samman, så det utvärderas i ordning. Av den anledningen föredrar jag:
select (case when NOT regexp_like(xy,'[^[:digit:]]') then to_number(xy)
end)
from ABC;
Detta returnerar NULL
för värden som inte är siffror.