순서대로 등록되는 숫자 중. 중간 값 삭제 후 정렬방법 문의드립니다. 0 2 2,037

by 물개 [2015.06.05 11:48:08]


WITH a AS
(
SELECT '0001' cd, '1' odr FROM dual
UNION ALL SELECT '0001', '2' FROM dual
UNION ALL SELECT '0001', '3' FROM dual
UNION ALL SELECT '0001', '4' FROM dual
UNION ALL SELECT '0001', '5' FROM dual
UNION ALL SELECT '0001', '6' FROM dual
UNION ALL SELECT '0001', '7' FROM dual
UNION ALL SELECT '0001', '8' FROM dual
)
SELECT *
  FROM a;

(odr 컬럼의 숫자들은 cd가 등록될 때 최대값을 기준으로 +1 하여 등록되도록 구현이 되어있다고 가정합니다.)

 

[질문]

만약에 odr 3,4,7에 해당되는 값이 삭제 되었다고 할 때,

남게 되는 odr 값 1,2,5,6,8을 -> 1,2,3,4,5로 update 하는 방법을 어떻게 하면

쉽게 처리 할 수 있을까요?

 

읽어주셔서 감사합니다.

 

by swlee710 [2015.06.05 13:22:25]

update a
set odr = rownum
where cd='0001';


by 물개 [2015.06.08 09:18:39]

rownum을 이용하는 방법이 있군요
답변 감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입