如何在MS Access中的表中查找第一个可用值

时间:2015-02-18 14:11:05

标签: ms-access

在SQL Server 2008中,我找到了表中第一个可用的插槽,其中包含以下存储过程。

If Exists ( Select *  From Methods  Where MethodSerno =1 )  
   Select @SlotCode = Min(MethodSerno) + 1  
   From Methods  
   Where MethodSerno + 1 Not In ( Select MethodSerno  From Methods )

MS Access中是否有相同的方式?

谢谢你...

1 个答案:

答案 0 :(得分:0)

对于名为[Methods]的包含行

的表
MethodSerno
-----------
          1
          2
          4
          5
          8
         10

我们可以从一个查询开始,找到有立即继承者的每个值(n + 1)

SELECT t1.MethodSerno
FROM 
    Methods t1 
    LEFT JOIN
    Methods t2
        ON t1.MethodSerno + 1 = t2.MethodSerno
WHERE t2.MethodSerno IS NULL

返回

MethodSerno
-----------
          2
          5
          8
         10

“第一个可用”值只是(the smallest of those values)+1

SELECT MIN(t1.MethodSerno) + 1 AS NextSerno
FROM 
    Methods t1 
    LEFT JOIN
    Methods t2
        ON t1.MethodSerno + 1 = t2.MethodSerno
WHERE t2.MethodSerno IS NULL

返回

NextSerno
---------
        3