안녕하세요. 오라클 오렌지를 사용하고 있습니다.
아래와 같이 ID, gubun을 이용해서 new_id라는 고유키를 만들려고 하는데,
쉬운 방법있을까요?
어쩌다보니 SQL 독학으로 더듬더듬 배워, 현업에서 바로 사용하고 있는 상황인지라 어려움이 많네요.
| ID | gubun | new_id |
| 158 | 1 | 158A |
| 158 | 3 | 158B |
| 158 | 4 | 158C |
| 187 | 2 | 187A |
| 187 | 3 | 187B |
| 143 | 5 | 143A |
| 195 | 5 | 195D |
| 195 | 3 | 195B |
| 195 | 6 | 195E |
| 195 | 7 | 195F |
| 195 | 2 | 195A |
| 195 | 4 | 195C |
| 166 | 4 | 166B |
| 166 | 3 | 166A |
| 111 | 3 | 111A |
| 154 | 6 | 154C |
| 154 | 2 | 154A |
| 154 | 5 | 154B |
| 132 | 3 | 132B |
| 132 | 1 | 132A |
지금까지 생각한건 row_number( ) over(partition by id order by id, gubun) 을 이용해서 id, gubun별로 연번을 넘버링을 하고
그 넘버링을 한 연번을 문자형태로 변경한 다음, replace로 연번을 알파벳으로 바꾸는 거를 생각해봤습니다.
이게 최선일까요?
-- A 의 ASCII 코드가 65 입니다. B 는 66. -- ASCII 코드를 문자로 변경하는 함수 CHR 를 이용하세요. , id || CHR(64 + ROW_NUMBER() OVER(PARTITION BY id ORDER BY gubun)) new_id
태이블 생성시 pk가 존재라면 그걸 활용하시는개 좋지 않나요? 없으시면 생성해야 겠지요
두 분 모두 답글 감사합니다!