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

2 cách trả về hàng không chứa giá trị số trong Oracle

Các ví dụ sau chỉ trả về những hàng không chứa bất kỳ chữ số nào trong một cột nhất định trong Cơ sở dữ liệu Oracle.

Dữ liệu mẫu

Giả sử chúng ta có một bảng với dữ liệu sau:

 SELECT ProductName 
FROM Products; 

Kết quả:

 Tua vít cầm tay trái Tuốc nơ vít cầm tay phải Tách cà phê không đáy (4 gói) Urban Dictionary Phiên bản 2.3 

Bảng ProductName sử dụng varchar2 kiểu dữ liệu, và vì vậy nó chứa dữ liệu ký tự. Nhưng nó cũng có thể chứa các chữ số.

Ví dụ 1 - Regex

Đây là một truy vấn mà chúng tôi có thể sử dụng để trả về tất cả các hàng không chứa chữ số:

 SELECT ProductName
FROM Products 
WHERE NOT REGEXP_LIKE(ProductName, '[0-9]+'); 

Kết quả:

 Tua vít cầm tay trái Tuốc nơ vít cầm tay phảiBeer Water 

Ví dụ 2 - POSIX

Trong Cơ sở dữ liệu Oracle, REGEXP_LIKE điều kiện tuân thủ tiêu chuẩn biểu thức chính quy POSIX. Do đó, chúng ta có thể nhận được cùng một kết quả với truy vấn sau:

 SELECT ProductName
FROM Products 
WHERE NOT REGEXP_LIKE(ProductName, '[[:digit:]]'); 

Kết quả:

 Tua vít cầm tay trái Tuốc nơ vít cầm tay phảiBeer Water 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiểu bí danh Oracle - tại sao bí danh không được nhận dạng trong một truy vấn trừ khi được bao bọc trong một truy vấn thứ hai?

  2. Chọn hàng mới nhất cho mỗi nhóm từ oracle

  3. Thay đổi độ chính xác của cột số trong Oracle

  4. Chèn / Cập nhật hàng loạt MyBatis cho Oracle

  5. Làm thế nào bạn có thể chạy cùng một truy vấn nhiều lần bằng cách sử dụng vòng lặp trong PL / SQL?