sql >> Database >  >> RDS >> Sqlserver

Vind het kleinste ongebruikte nummer in SQL Server

Zoek de eerste rij waar geen rij bestaat met Id + 1

SELECT TOP 1 t1.Id+1 
FROM table t1
WHERE NOT EXISTS(SELECT * FROM table t2 WHERE t2.Id = t1.Id + 1)
ORDER BY t1.Id

Bewerken:

Om het speciale geval aan te pakken waarin de laagste bestaande id niet 1 is, is hier een lelijke oplossing:

SELECT TOP 1 * FROM (
    SELECT t1.Id+1 AS Id
    FROM table t1
    WHERE NOT EXISTS(SELECT * FROM table t2 WHERE t2.Id = t1.Id + 1 )
    UNION 
    SELECT 1 AS Id
    WHERE NOT EXISTS (SELECT * FROM table t3 WHERE t3.Id = 1)) ot
ORDER BY 1


  1. Een gegevensbestand toevoegen aan een SQL Server-database (T-SQL)

  2. hoe de rijgrootte in de tabel te vinden

  3. Een database herstellen met Backup Manager

  4. Moet elke gebruikerstabel een geclusterde index hebben?