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

oracle lấy tất cả các lần xuất hiện phù hợp từ một cột

bạn có thể thử truy vấn này.

 with test as(
  select 'ABC12345, DE22222' as JOB_Description from DUAL union
  select 'Please help to repair ABC12345, DE22222' as JOB_Description from DUAL 
)
SELECT REGEXP_SUBSTR(JOB_Description, '(ABC|DE)([[:digit:]]){5}', 1, LEVEL) AS substr
FROM test
CONNECT BY LEVEL <= REGEXP_COUNT(JOB_Description, '(ABC|DE)([[:digit:]]){5}')
  AND PRIOR JOB_Description = JOB_Description
  AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL

Kết quả:

ABC12345
DE22222
ABC12345
DE22222

Bạn có thể tìm thấy lời giải thích tốt về hai dòng cuối cùng tại đây




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mệnh đề CASE WHEN trong mệnh đề WHERE không thành công với lỗi thiếu từ khóa

  2. Lỗi cú pháp trong câu lệnh SQL ngoại lệ ném từ khóa “WITH”

  3. Gặp lỗi khi thực hiện quy trình từ nhà phát triển sql

  4. chuyển đổi giá trị được phân tách bằng dấu phẩy thành nhiều hàng

  5. Tạo ứng dụng Java trong Oracle JDeveloper, Phần 2