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

Как да получа следващия наличен номер от SQL Server? (Не е колона за самоличност)

Мисля, че от въпроса търсите следващия наличен, въпреки че това може да не е същото като max+1, нали? - В такъв случай:

Започнете със списък с цели числа и потърсете тези, които ги няма в колоната groupid, например:

;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

Забележка:трябва да промените 2001/4000 стойности в CTE, за да позволите диапазона, който искате. Приех името на вашата таблица от 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. @@ROWCOUNT – Вземете броя на редовете, засегнати от последното изявление в SQL Server

  2. Когато изпълнявате съхранена процедура, каква е ползата от използването на CommandType.StoredProcedure спрямо използването на CommandType.Text?

  3. вземете датата на всички съботи в дадена година - sql сървър

  4. Entity Framework 6 - Заявки за време

  5. Как да конфигурирам SQL Native Client с powershell?