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

Số không hợp lệ Oracle trong mệnh đề

Một thay đổi đối với câu trả lời của phonetic_man sẽ cho phép NULL phần tử trong danh sách. Định dạng regex của '[^,]+' để phân tích cú pháp các danh sách được phân tách không xử lý các phần tử danh sách NULL và sẽ trả về một giá trị không chính xác nếu tồn tại một giá trị và do đó nên tránh sử dụng nó. Thay đổi bản gốc bằng cách xóa số 2 chẳng hạn và xem kết quả. Bạn sẽ nhận được số '3' ở vị trí của phần tử thứ 2! Đây là một cách xử lý NULL và trả về giá trị chính xác cho phần tử:

SELECT TRIM(REGEXP_SUBSTR(str, '(.*?)(,|$)', 1, LEVEL, NULL, 1)) str
    FROM ( SELECT '1,,3,4' str FROM dual )
    connect by level <= regexp_count(str, ',') + 1;

Xem tại đây để biết thêm thông tin và bằng chứng: https://stackoverflow.com/a/31464699/2543416



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để kiểm tra một Thủ tục được Lưu trữ trong Oracle với kiểu trả về RefCursor?

  2. Màn hình PL / SQL Developer không hiển thị đúng các ký tự tiếng Do Thái

  3. ADO.NET để kết nối Cơ sở dữ liệu Oracle trên máy chủ

  4. Câu lệnh SQL tham gia Oracle và MS SQL Server

  5. Đếm số lần xuất hiện của một ký tự trong Oracle SQL