문자를 카멜형식으로 바꾸는 방법 좀 부탁드립니다. 4 5 3,315

by InSilence [2015.06.18 14:46:04]


문자열이 AAA_BB_CC, ABC_BD, ACD 이런식으로 존재하는데

aaaBbCc, abcBd, acd 이런식으로 변경할려고 하는데요

언더바가 몇개가 들어가는지 정해져 있지 않아서 어떻게 해야 카멜형식으로 바꿀 수 있을지 잘 몰라서 질문 올립니다.

by DarkBee [2015.06.18 16:51:13]

전 이렇게 합니다.

 

SELECT LOWER ( SUBSTR ( col, 1, 1 ) )
    || SUBSTR ( REPLACE ( INITCAP ( col ), '_', '' ), 2 ) 
  FROM t


by 아발란체 [2015.06.18 17:13:19]
--Reference Site : https://community.oracle.com/thread/625330
WITH T AS (
  SELECT 'AAA_BB_CC' AS val FROM DUAL
  UNION ALL SELECT 'ABC_BD' FROM DUAL
  UNION ALL SELECT 'ACD ' FROM DUAL
)
SELECT 
  REGEXP_REPLACE(INITCAP('Z'||LOWER(val)), '_|^.', '')
FROM
  T

 


by DarkBee [2015.06.19 09:57:32]

우왕 멋지시네요 : D


by 마농 [2015.06.19 10:02:41]

앞에 'Z'를 붙인 아이디어는 Good~

LOWER 는 불필요하게 사용되었네.

SUBSTR(REPLACE(INITCAP('z'||val), '_'), 2)


by 아발란체 [2015.06.19 14:53:35]

쑥스럽네용..  늘 마농님 다크비님 쿼리 보며 배우고 있습니다.

아.. LOWER를 안써도 되는군요.. 늘 감사합니다!

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