Tôi e rằng câu trả lời được chấp nhận của bạn không xử lý được trường hợp bạn cần giá trị sau vị trí rỗng (cố gắng lấy trường thứ 6):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '[^,]*', 1, 6) phn_end
_dt
2 from dual;
P
-
Bạn cần làm điều này thay vì tôi tin (hoạt động vào 11g):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '([^,]*)(,|$)', 1, 6,
NULL, 1) phn_end_dt
2 from dual;
P
-
P
Tôi vừa phát hiện ra điều này sau khi đăng câu hỏi của riêng mình: REGEX để chọn giá trị thứ n từ danh sách, cho phép nulls