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

Làm cách nào để lấy số Tiếp theo có sẵn từ Máy chủ SQL? (Không phải cột Danh tính)

Tôi nghĩ từ câu hỏi bạn đang tìm kiếm tiếp theo có sẵn, mặc dù điều đó có thể không giống với max + 1 phải không? - Trong trường hợp đó:

Bắt đầu với danh sách các số nguyên và tìm những số nguyên không có trong cột nhóm, ví dụ:

;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

Lưu ý:bạn cần chỉnh sửa 2001/4000 giá trị trong CTE để cho phép phạm vi bạn muốn. Tôi đã đặt tên bảng của bạn thành 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. DATEDIFF () Trả về Kết quả Sai trong SQL Server? Đọc này.

  2. máy chủ sql Chèn csv hàng loạt với dữ liệu có dấu phẩy

  3. Ràng buộc KIỂM TRA trong SQL Server

  4. Cài đặt cụm chuyển đổi dự phòng SQL Server -3

  5. Xác thực SQL Server so với xác thực Windows:Sử dụng cái nào và khi nào