sql >> Databáze >  >> RDS >> Sqlserver

Jak získám další dostupné číslo ze serveru SQL? (Není sloupec identity)

Myslím, že z otázky, kterou hledáte, je další dostupná, i když to nemusí být totéž jako max+1, že? - V tom případě:

Začněte se seznamem celých čísel a hledejte ta, která tam nejsou ve sloupci groupid, například:

;WITH CTE_Numbers AS (
    SELECT n = 2001
    UNION ALL
    SELECT n + 1 FROM CTE_Numbers WHERE n < 4000 
)
SELECT top 1 n 
FROM CTE_Numbers num
WHERE NOT EXISTS (SELECT 1 FROM MyTable tab WHERE num.n = tab.groupid)
ORDER BY n

Poznámka:musíte vyladit 2001/4000 hodnoty int CTE, abyste umožnili požadovaný rozsah. Předpokládal jsem název vaší tabulky podle MyTable



  1. Datový typ JDBC, Elasticsearch a Postgresql Json

  2. pgAdmin zkratky pro spouštění skriptů

  3. SQL JOIN jako jeden řádek s podřízenými hodnotami jako sloupci a schopností ORDER BY podřízené hodnoty vztahu

  4. Vytvoření formuláře v APEX pro nastavení proměnných v dotazu pro interaktivní sestavu