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

Bảng điền phạm vi

Bạn có thể sử dụng như sau:

SELECT
    DISTINCT PREFIX || ( START_RANGE + LEVEL - 1 )
FROM
    (
        SELECT
            REGEXP_SUBSTR(START_RANGE, '^[[:alpha:]]+') AS PREFIX,
            REGEXP_SUBSTR(START_RANGE, '\d+$') AS START_RANGE,
            REGEXP_SUBSTR(END_RANGE, '\d+$') AS END_RANGE
        FROM
            TEST
    )
CONNECT BY
    LEVEL <= END_RANGE - START_RANGE + 1
ORDER BY 1;

Tôi giả định rằng phạm vi bắt đầu và kết thúc của bạn có cùng tiền tố với định dạng (chuỗi || số)

db <> fiddle demo

Chúc mừng !!



  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ách sử dụng quảng cáo phân tán để giảm thời gian vá lỗi trong Oracle EBS

  2. oracle chọn từ nhiều bảng

  3. Tạo phạm vi phút (15) được chọn

  4. Đảo ngược một chuỗi bằng cách sử dụng một chỉ mục trong Oracle

  5. Oracle / Sybase SQL - lấy giá trị dựa trên bản ghi trước đó (không phải LAG đơn giản)