Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách làm cho to_number bỏ qua các giá trị không phải số

Nói chung trong cơ sở dữ liệu quan hệ, thứ tự đánh giá không được xác định, vì vậy có thể select các hàm được gọi trước where mệnh đề lọc dữ liệu. Tôi biết đây là trường hợp của SQL Server. Tại đây là một bài đăng gợi ý rằng điều tương tự cũng có thể xảy ra trong Oracle.

case tuy nhiên, câu lệnh thực hiện theo tầng, vì vậy nó được đánh giá theo thứ tự. Vì lý do đó, tôi thích:

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

Điều này sẽ trả về NULL cho các giá trị không phải là số.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các tham số OUT của thủ tục được lưu trữ Oracle

  2. Ứng dụng VB6 oracle 12 kết nối 64bit

  3. java.sql.SQLRecoverableException - kết nối lại từ jdbc

  4. Sử dụng trình kích hoạt để triển khai ràng buộc kiểm tra khóa ngoại

  5. Truy vấn tên cột từ một bảng từ người dùng khác