2009年9月1日火曜日

[SQL]数値型フィールドで最小の空き番を取得する(その2)

先日紹介しましたGDD Blog: [SQL]数値型フィールドで最小の空き番を取得するでは、NOT INとNOT EXISTSを使ったSQLを紹介しました。あと、最近のDBMSではほとんど採用されている、集計関数を使った最小値を取得する方法があります。コードはこんな感じ。

SELECT
MAX(T1.ID) + 1 AS GAP
FROM (SELECT ID, Row_Number() OVER(order by ID) AS RNK FROM testtable) t1
WHERE ID = T1.RNK


実行効率については調べていません。がNOTを使っていませんので、他の方式よりよいと思われます。

0 件のコメント: