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

SQL - Tìm các giá trị int bị thiếu trong chuỗi tuần tự được sắp xếp chủ yếu

Tôi đã ở đó.

FOR ORACLE:

Tôi thấy điều này cực kỳ hữu ích truy vấn trên mạng một lúc trước và được ghi chú lại, tuy nhiên tôi không nhớ trang web bây giờ, bạn có thể tìm kiếm "GAP ANALYSIS" trên Google.

SELECT   CASE
             WHEN ids + 1 = lead_no - 1 THEN TO_CHAR (ids +1)
          ELSE TO_CHAR (ids + 1) || '-' || TO_CHAR (lead_no - 1)
         END
             Missing_track_no
   FROM   (SELECT   ids,
                    LEAD (ids, 1, NULL)
                     OVER (ORDER BY ids ASC)
                        lead_no
             FROM   YOURTABLE
             )
   WHERE   lead_no != ids + 1

Đây, kết quả là:

MISSING _TRACK_NO
-----------------
       6

Nếu có nhiều khoảng trống, giả sử 2,6,7,9 thì nó sẽ là:

MISSING _TRACK_NO
-----------------
        2
       6-7
        9


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể xác thực, với tùy chọn không xác thực

  2. Làm cách nào để xuất dữ liệu với Oracle SQL Developer?

  3. PARTITION BY có và không có KEEP trong Oracle

  4. Cách loại bỏ số 0 khi Phần nguyên là số 0 trong Oracle

  5. Tùy chọn phân phối trong khi gửi yêu cầu đồng thời trong R12.1.3