현재 mf000001과 같은 형식을 가지고 있는 char(8) 형식의 데이터가 테이블에 있습니다.
만약 select 문을 날려서 mf000001을 mf000002와 같은 형식으로 불러올려면 어떻게 해야 합니까?
select 문을 한번만 짜주세요. (참고로 애트리뷰트 명은 mf_no입니다.)
목적은 현존하는 일렵번호중 가장 큰 같에 한개를 더해서 받아오는게 목적입니다.
내용은 알겠습니다. 그러나 꼭 말해주고 싶네요.
"mf000001과 같은 형식을 가지고 있는 char(8) 형식의 데이터가 "는
형식이 아니라 Data를 가지고 있는 Char(8)의 형식의 칼럼이 테이블에 있습니다.
select max(mf_no) from <table_name>
이렇게 하면 최대 mf_no를 잡아 온것이 되겠지요.
그리고 mf_no의 형식이 앞 두자리가 숫자라면
select right('mf000000' + cast(cast(Right(max(mf_no), len(max_mf)-2) as integer) + 1 as char), 8)
이렇게 하시면 한번에 가장 큰 것을 불러와 1을 증가시킨 형태가 될거 같습니다.
만약 채번을 위해 사용하실려면, 채번을 위한 sp를 하나 만들어서 사용하는 것이 바람직합니다..
동시에 동일 데이터를 읽는다면, 동일한 mf00000n을 사용하게 되겠죠.. 즉 이를 방지하기 위해서는 sp 내에서 transaction isolation level을 적절히 사용해서 작성하시면 될 겁니다..
그럼..