Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak sprawić, by to_number ignorowało wartości nieliczbowe?

Generalnie w relacyjnych bazach danych kolejność oceny nie jest zdefiniowana, więc możliwe jest, że select funkcje są wywoływane przed where klauzula filtruje dane. Wiem, że tak jest w przypadku SQL Server. Tutaj to post, który sugeruje, że to samo może się zdarzyć w Oracle.

case oświadczenie jednak działa kaskadowo, więc jest oceniane w kolejności. Z tego powodu wolę:

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

To zwróci NULL dla wartości, które nie są liczbami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyrocznia:„=DOWOLNY()” kontra „IN ()”

  2. Wywołaj procedurę składowaną zawierającą zbiór rekordów za pomocą callproc w pythonie

  3. Jak zwrócić RefCursor z funkcji Oracle?

  4. Jaka jest minimalna konfiguracja wymagana do wdrożenia aplikacji .NET z klientem Oracle 11?

  5. zamień wiersz na kolumny w oracle10g