알파벳 대문자는 소문자로 소문자는 대문자로 , 그 이외의 문자는 그대로 나두는 치환 방법 ??? 1 4 2,707

by 히로 [SQL Query] 대소문자 치환 정규식 [2023.06.02 14:47:51]


안녕하세요.. 

제목 그대로 알파벳 대문자는 소문자로 소문자는 대문자로 , 그 이외의 문자는 그대로 나두는 치환 방법을 알고 싶습니다.

 

AbCdefG1234UZZfg34 => aBcDEFg1234uzzFG34   이렇게 치환하는 SQL 좀 부탁드립니다. 

regexp_replace와 regexp_like등의 정보를 찾아 이를 조합해서 해보려고 하는데.. 

영 실력이 없어서 도움 요청드립니다. 

 

by 우리집아찌 [2023.06.02 16:01:37]

오라클이면 간단하게 translate 함수 써도 되요


by 동동동 [2023.06.02 18:28:12]
SELECT
  LISTAGG(
    CASE
      WHEN ASCII(val) BETWEEN 65 AND  90 THEN LOWER(val)    -- 대문자인 경우
      WHEN ASCII(val) BETWEEN 97 AND 122 THEN UPPER(val)    -- 소문자인 경우
      ELSE val
    END
  ) WITHIN GROUP (ORDER BY ROWNUM) AS converted_string
FROM
  (SELECT REGEXP_SUBSTR('AbCdefG1234UZZfg34', '.', 1, LEVEL) AS val
   FROM dual
   CONNECT BY LEVEL <= LENGTH('AbCdefG1234UZZfg34'));



SELECT TRANSLATE('AbCdefG1234UZZfg34'
               , 'aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ'
               , 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz') AS column_name 
FROM dual;

 

 


by 마농 [2023.06.05 00:11:44]
-- INITCAP 을 이용해 봤습니다.
SELECT v
     , REPLACE(SUBSTR(INITCAP('a'||REGEXP_REPLACE(v, '([a-z])', ' \1')), 2), ' ') x
  FROM (SELECT 'AbCdefG1234UZZfg34' v FROM dual)
;

 


by 히로 [2023.06.07 10:07:50]

와.. 감사합니다. 

머릴 굴려도 SQL로는 안돼서, 그냥 개발 소스단에서 처리했는데, 

이렇게 답변주신분들  쿼리 참조해서 재적용하였습니다.  

잘 가지고 있다고 다음에 또 써먹어야겠습니다. 

정말 감사드립니다. 

 

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