sql >> Database teknologi >  >> RDS >> Oracle

Sådan får du to_number til at ignorere ikke-numeriske værdier

Generelt i relationelle databaser er rækkefølgen for evaluering ikke defineret, så det er muligt, at select funktioner kaldes før where klausul filtrerer dataene. Jeg ved, at dette er tilfældet i SQL Server. Her er et indlæg, der antyder, at det samme kan ske i Oracle.

case Udsagnet falder dog sammen, så det vurderes i rækkefølge. Af den grund foretrækker jeg:

select (case when NOT regexp_like(xy,'[^[:digit:]]') then to_number(xy)
        end)
from ABC;

Dette vil returnere NULL for værdier, der ikke er tal.



  1. Hvornår skal man bruge SELECT ... TIL OPDATERING?

  2. Docker - PG::ConnectionBad

  3. MySQL-forbindelsesvaliditetstest i datakilde:SELECT 1 eller noget bedre?

  4. Skjul duplikerede resultater i MySQL-forespørgsel