DB에 일련번호를 저장하는데 반드시 세자리로 저장하고 싶습니다.
1이면 001, 43이면 043 . 이런식으로요.
다른 DB에서는 displaysize 로 지정할 수 있는데 sybase에서는 어떻게 해야하는지 모르겠습니다.
답변 좀 부탁드립니다.
sybase에서 그렇게 저장 하실순 없고
나중에 조회할때 로직에 의해 처리할수 밖에 없습니다
저도 이곳에서 얻은 정보입니다.
sybase를 사용하다 보면 oracle의 rpad, lpad기능이 아쉬울 때가 많았었는데아래와 같이 하면 해결이 되더군요.여기서 3은 원하는 총 자리수 입니다.필드명 : brancdtrim을 해주는 이유는 공백때문에 "00 2" 처럼 나올수 있기때문입니다.
먼저 lpad
1> select replicate('0', 3-char_length(ltrim(rtrim(brancd)))) + ltrim(rtrim(brancd))2> from br_tbl3> where brancd = '2'4> go-----------------------002그리고 rpad1> select ltrim(rtrim(brancd)) + replicate('0', 3-char_length(ltrim(rtrim(brancd))))2> from br_tbl3> where brancd = '2'4> go-----------------------200
이렇게 select하여 insert 하면 될듯 싶은데요...
5자리 숫자로 만들고 싶을 때.... 삽질입니다
declare @key varchar(10), @key_cnt int, @finalKey char(5)select @key='50'select @key='00000'||@key, @key_cnt = len('00000'||@key)select substring(@key, @key_cnt-4, 5)
6자리로 만들고 싶을 때는 윗부분의 4를 5로 바꿔 주시고, 5를 6으로 바꾸면 됩니다.