Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mendapatkan nomor berikutnya yang tersedia dari SQL Server? (Bukan kolom Identitas)

Saya pikir dari pertanyaan yang Anda cari berikutnya tersedia, meskipun itu mungkin tidak sama dengan max+1 kan? - Dalam hal ini:

Mulailah dengan daftar bilangan bulat, dan cari yang tidak ada di kolom groupid, misalnya:

;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

Catatan:Anda perlu mengubah 2001/4000 nilai int CTE untuk memungkinkan rentang yang Anda inginkan. Saya mengasumsikan nama tabel Anda dengan MyTable



  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 menghasilkan rentang tanggal di SQL Server

  2. Bagaimana Anda menghindari tanda kutip ganda di dalam fungsi 'berisi' teks lengkap SQL?

  3. 3 Cara Mengekstrak Tahun dari Tanggal di SQL Server (T-SQL)

  4. Cara Baru Menyalin File di SQL Server 2019

  5. Panduan Lengkap untuk Memperbaiki Kesalahan Database SQL 5243