如何在SQL中找到范围的差距

Kim*_*ais 2 sql sqlite postgresql gaps-and-islands

这个问题解释了如何在表中找到第一个"未使用"的数字,但是如何找到相同的数字以便我可以定义额外的约束.如何更改查询,以便在大于100之后获取第一个未使用的数字

例如,如果我的桌子上有23,56,100,101,103,我应该得到102.

Pra*_*nan 7

在mysql和postgresql中

SELECT  id + 1
FROM    test mo
WHERE   NOT EXISTS
        (
        SELECT  NULL
        FROM    test mi 
        WHERE   mi.id = mo.id + 1
        ) and mo.id> 100
ORDER BY
        id
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

用于mysql的小提琴用于postgresql的小提琴

在ms sql中

SELECT  TOP 1
        id + 1
FROM    test mo
WHERE   NOT EXISTS
        (
        SELECT  NULL
        FROM    test mi 
        WHERE   mi.id = mo.id + 1
        )
          and mo.id > 100
ORDER BY
        id
Run Code Online (Sandbox Code Playgroud)

小提琴