본문 바로가기

Dev/DB-Oracle

테이블 일련번호에서 빠진 번호 찾기

SELECT 쿼리를 이용하다보면 일련번호(시퀀스)에서 빠진 번호를 찾아야 할 경우가 있다 이경우

다음과 같은 쿼리를 이용하면 유용하다


1. 빠진번호 전체 검색

   SELECT [seq_field]+1 

      FROM [table_name] 

    WHERE ([seq_field]+1) NOT IN (SELECT [seq_field] FROM [table_name])

   #일련번호 중 가장 큰수보다 1큰수도 같이 출력되므로 그값을 배제하는 조건을 추가하는 처리를 해야할 경우도 있다.


2. 빠진번호중 최소값 검색

   SELECT min([seq_field]+1) 

      FROM [table_name] 

    WHERE ([seq_field]+1) NOT IN (SELECT [seq_field] FROM [table_name])


3. 빠진번호중 최대값 검색

   SELECT max([seq_field]-1) 

      FROM [table_name] 

    WHERE ([seq_field]-1) NOT IN (SELECT [seq_field] FROM [table_name])



출처 : 

http://reiphiel.tistory.com/entry/%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%9D%BC%EB%A0%A8%EB%B2%88%ED%98%B8%EC%97%90%EC%84%9C-%EB%B9%A0%EC%A7%84-%EB%B2%88%ED%98%B8-%EC%B0%BE%EA%B8%B0