sql >> データベース >  >> RDS >> Sqlserver

SQLServerで未使用の最小数を見つける

    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
    

    編集:

    既存の最小IDが1でない特殊なケースを処理するには、次のような醜い解決策があります。

    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. LAST_DAY()の例– MySQL

    2. 進化する連絡先情報はデータベースを変更することを意味しますか?

    3. MySQLサーバーのルートパスワードをリセットする

    4. あるSQLServerインスタンスから別のSQLServerインスタンスにSQLServerジョブを移行する方法