sql >> Databasteknik >  >> RDS >> Oracle

Hur man får to_number att ignorera icke-numeriska värden

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.



  1. Problem med att skapa Trigger i MySQL

  2. Ställ in tidszon för MYSQL NOW()

  3. Oracle SQL Where-klausul för att hitta datumposter äldre än 30 dagar

  4. PLS-00302:komponent måste deklareras- Kan inte lösas