我有一张这样的桌子
ID NAME
----------- -----------
1 JON
2 JIM
3 BOB
(3 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
我需要它的代码来选择一个不在列ID中退出的数字并将其放到一个文件中,所以在这个实例中它将是"4".
我需要它做的是从1开始然后检查2,3,依此类推,直到找到表中不存在的数字.
此代码必须在SQL Server 2008中
你需要的是一个数字表或列表:
Declare @MaxValue int;
Set @MaxValue = 100;
With Numbers As
(
Select 1 As Value
Union All
Select Value + 1
From Numbers
Where Value <= @MaxValue
)
Select Min(N.Value)
From Numbers As N
Left Join MyTable As T
On T.Id = N.Value
Where T.Id Is Null
OPTION (MAXRECURSION 0)
Run Code Online (Sandbox Code Playgroud)