-- 좀 복잡해졌네요.. WITH T ( EMP_NM , YN ,SEQ ) AS ( SELECT '김길동','Y',2 FROM DUAL UNION ALL SELECT '마길동','Y',3 FROM DUAL UNION ALL SELECT '박길동','N',5 FROM DUAL UNION ALL SELECT '손길동','N',6 FROM DUAL UNION ALL SELECT '이길동','Y',8 FROM DUAL UNION ALL SELECT '정길동','Y',11 FROM DUAL UNION ALL SELECT '석길동','N',13 FROM DUAL UNION ALL SELECT '사길동','Y',14 FROM DUAL UNION ALL SELECT '임길동','Y',16 FROM DUAL ) SELECT EMP_NM ,SEQ , CASE WHEN MAX(SEQ) OVER(ORDER BY NULL) = SEQ THEN MIN(SEQ) OVER(ORDER BY NULL) ELSE LEAD(SEQ) OVER(ORDER BY ROWNUM) END NEXT_SEQ FROM T WHERE YN = 'Y'