max+1 이 안됩니다....ㅜㅜ 0 1 555

by 띵똥 [2018.11.07 15:46:57]


제목 그대로 max(컬럼)+1이 안됩니다...

max값이 10일경우 발생 되는 문제로 to_number(컬럼)+1로 해도 값이 11이 아니라 10으로 나옵니다..

해당 컬럼은 varchar2(2)입니다... 원인이 몰까요?!

by 마농 [2018.11.07 16:16:14]

문자라서 그래요
숫자 10 은 숫자 9 보타 크지만
문자 '10' 은 문자 '9' 보다 작죠.
맨 앞에 '1' 이 '9' 보다 작기 때문이죠.
처음부터 숫자로 만들던가?
문자로 사용하려면 자리수를 고정으로 채웠어야죠. '01', '02'
MAX(TO_NUMBER(컬럼)) + 1 하면 값은 나오지만, 성능상 좋지 않습니다.
숫자 또는 고정자리 사용 권장합니다.

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