select ... from dual을 통해서 채번하는 방법을 알고 싶습니다. 0 6 2,560

by 윤 [SQL Query] Oracle SELECT NUMBERING 채번 [2022.01.28 10:15:37]


채번하는 시스템을 개선해야하는 상황이 생겨서 고민중에 좋은 방안이 생각나지 않아 질문 올려봅니다
채번할 숫자의 길이는 4자리로 고정됩니다.
0000, 0001, 0002, 0003, ... , 2000, 2001, ..., 9999, A000, A001, ... , Z999, AA00, AA01, AA02, ..., ZZZZ를 만들고 싶은데 아이디어가 떠오르지 않아 문제를 해결할 수 없어 도움을 요청합니다.

이걸 select ... from dual을 통해서 구할수 있는 방법이 있을까요ㅠㅠ

by 마농 [2022.01.28 10:26:21]

목적이 뭔가요?
- 0000 ~ ZZZZ 까지 전체를 한번에 조회하고자 하는 건가요?
- 새로운 자료가 입력될 때 하나의 값을 채번하려는 건가요?


by 윤 [2022.02.11 11:02:50]

예를들어 한번에 30000건의 데이터가 들어오면

30000건의 row를 읽어들이면서 한번에 1번째부터 30000번째까지 번호를 붙이고 싶은것 입니다


by 우주민 [2022.01.28 10:40:21]

음.... 조금 사견이지만...

0000, 0001 .... 0009, 000A, 000B .... 000Z, 0010, 0011, .... 이런식의 채번이 논리에 맞는듯 합니다. 


by 윤 [2022.02.11 11:03:22]

음... 개발 요청하신 분께 한번 문의는 해봐야겠네요ㅠ


by 우리집아찌 [2022.01.28 15:11:36]

인조 식별자로 사용하실경우는 number type으로 만드시길 권장드립니다 

오라클은 시퀀스를 사용하시면 됩니다.

다른 db도 유사하게 제공되는 방법이 있을겁니다


by 마농 [2022.02.11 11:23:50]

순번과, 원하는 형태의 SEQ 항목으로 구성된
채번용 테이블을 하나 만들어 두고 사용하시면 될 것 같습니다.
다만, 지금 적으신 순서는 조금 안맞는게.
Z999 다음이 AA00 인데? 정렬을 해보면 AA00 이 Z999 보다 먼저 나옵니다.
따라서 원하는 순서대로 정렬이 안되게 됩니다.
우주민님 답변 참고하시는게 어떨런지...

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