n個の連続した空き番号を取得する

空き番号を整理したときに使用したSQL文です。
自分より次に大きい番号を取得し、その差異を検証しています。

select
  *
from
(
   select
  T1.DenNo
  --自分より大きいミニマム(変な日本語だ)
  ,(select Min(DenNo)
    from TableA
    where DenNo > T1.DenNo
   ) NextNo
  --自分との次の番号との差異
  ,(select Min(DenNo)
    from TableA
    where DenNo > T1.DenNo
   )
    - T1.DenNo SpaceCount
  from TableA T1
) viewSpaceNo
where
  SpaceCount >= 3   --n個の空きがある部分
order by
  DenNo

最近では、ROW_NUMBER() なんかを使うのでしょうか。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です