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])
출처 :
'Dev > DB-Oracle' 카테고리의 다른 글
ORACLE PL/SQL 검색어 +/- 연산자 구현 (0) | 2016.12.01 |
---|---|
ORACLE 동호배치도 출력 쿼리 작성 (0) | 2016.11.29 |
ORACLE DENSE_RANK 활용 세로데이터를 그룹별 비교 가능한 가로로 펼치기 (0) | 2016.10.17 |
ORACLE MODEL구문을 이용하여 변수 치환 후 산식 계산하기 (0) | 2016.04.18 |
Oracle - 전환보증금(하한보증금) 한도 계산 Query (0) | 2015.07.10 |