sql >> Database teknologi >  >> RDS >> PostgreSQL

Find huller i en sekvens i SQL uden at oprette yderligere tabeller

Med moderne SQL , dette kan nemt gøres ved hjælp af vinduefunktioner :

select invoice_number + 1 as gap_start, 
       next_nr - 1 as gap_end
from (
  select invoice_number, 
         lead(invoice_number) over (order by invoice_number) as next_nr
  from invoices
) nr
where invoice_number + 1 <> next_nr;

SQLFiddle:http://sqlfiddle.com/#!15/1e807/1



  1. Entitetsramme PostgreSQL

  2. Forstå PIVOT-funktionen i T-SQL

  3. CHR(0) i REGEXP_LIKE

  4. SQL Server-forespørgsel:Hurtig med bogstavelig men langsom med variabel