Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL заявка за намиране на липсващи поредни номера

Какво ще кажете за нещо като:

  select (select isnull(max(val)+1,1) from mydata where val < md.val) as [from],
     md.val - 1 as [to]
  from mydata md
  where md.val != 1 and not exists (
        select 1 from mydata md2 where md2.val = md.val - 1)

даване на обобщени резултати:

from        to
----------- -----------
6           6
8           8
11          14


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Datediff - намиране на datediff между редовете

  2. Използване на T-SQL ОСВЕН с DELETE / Оптимизиране на заявка

  3. nolock на временна таблица в SQL Server 2008

  4. таблица за преобразуване на единици в SQL

  5. Вземете имена на колони от заявка без данни