Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SQL - Temukan nilai int yang hilang di sebagian besar seri berurutan

Saya pernah ke sana.

FOR ORACLE:

Menurut saya ini sangat berguna kueri di internet beberapa waktu lalu dan mencatat, namun saya tidak ingat situsnya sekarang, Anda dapat mencari "GAP ANALYSIS" di 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

Ini, hasilnya adalah:

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

Jika ada beberapa celah, misalkan 2,6,7,9 maka akan menjadi:

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. Cara menambahkan nomor urut untuk setiap elemen dalam grup menggunakan kueri SQL tanpa tabel temp

  2. Oracle PL/SQL:cara mendapatkan jejak tumpukan, nama paket, dan nama prosedur

  3. Cara Membuat VARRAY Sebagai Objek Database Di Database Oracle

  4. Memutar tabel secara dinamis Oracle

  5. Oracle PL/SQL - Koleksi (Tabel Bersarang)