ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL을 활용해서 스네이크 케이스를 카멜 케이스로 바꾸기
    개발/Database 2018. 7. 26. 16:51

    INITCAP() 이라는 함수를 써서 쉽게 바꿔줄 수 있다.

    물론 딸랑 INITCAP() 하나만 써서는 안되고 다른 함수들을 같이 섞어서 써주면 가능


    결론만 먼저 말하자면 아래처럼 쓰면 된당

    SUBSTR ( REPLACE ( INITCAP ( '1' || 대상문자열 ), '_' ), 2)



    이제 안에서부터 하나씩 쪼개보겠음



    1. INITCAP()


     - 대상 문자열에서 각 단어의 첫 글자만 대문자로, 나머지는 소문자로 변환

     - '1' || 'ABC_DEF_GHI' 로 문자열 앞에 '1' 은 왜 붙였나?

        ∵ INITCAP 을 쓰면 무조건 단어의 첫글자를 대문자로 변환해주는데, 

           카멜 케이스는 맨 앞 단어의 첫 글자는 소문자가 되야 하기 때문에 

     앞에 다른 문자를 아무거나 붙여서 맨 앞 단어의 첫 글자가 대문자가 되는 것을 방지해줌 

     - 쿼리

    SELECT INITCAP('1' || 'ABC_DEF_GHI')

           FROM DUAL

     ;

    → 실행결과




    2. REPLACE()


     - 변환한 문자열에서 언더바(_)를 제거 

    - 쿼리

    SELECT REPLACE(INITCAP('1' || 'ABC_DEF_GHI'), '_') CAMELCASE

           FROM DUAL

     ;

    → 실행결과




    3. SUBSTR()


     - SUBSTR('대상문자열', 분할 시작위치, [반환할 문자 개수]) 

     - 맨 앞 단어의 첫글자가 소문자가 되도록 맨 앞에 문자를 아무거나 하나 붙여줬기 때문에 그 문자를 떼어내는 작업을 SUBSTR() 함수를 써서 진행

     - 두번째 글자부터 끝까지 잘라주면 되기 때문에 분할 시작위치를 2로 선언

     - 쿼리

    SELECT SUBSTR(REPLACE(INITCAP('1' || 'ABC_DEF_GHI'), '_'), 2) CAMELCASE

           FROM DUAL

     ;

    → 실행결과







    댓글

Designed by Tistory.