Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tìm số nhỏ nhất không sử dụng trong SQL Server

Tìm hàng đầu tiên không tồn tại hàng có 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

Chỉnh sửa:

Để xử lý trường hợp đặc biệt trong đó id thấp nhất hiện có không phải là 1, đây là một giải pháp xấu:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bản phát hành mới:Gói điều chỉnh Spotlight 7.1.9

  2. Kế hoạch thực thi SQL Server - nó là gì và nó giúp giải quyết các vấn đề về hiệu suất như thế nào?

  3. PHP Lỗi nghiêm trọng:Gọi đến hàm không xác định mssql_connect ()

  4. Thực hiện chuyển đổi dự phòng trong MS SQL Server 2017 Standard

  5. Thuật toán sắp xếp GUID của SQL Server. Tại sao?