select값 변경 0 2 320

by 퇴근하고싶다 [Oracle 기초] [2019.05.28 19:27:12]


안녕하세요.

 

select 부서,이름

from 명단

;

부서 이름
인사 홍길동
총무 이순신

이렇게 출력되는것을

부서 이름
인사 홍 (길동)
총무 이 (순신)

이렇게 () 붙여서 출력되게끔 가능할까요..?

by 신이만든지기 [2019.05.28 20:39:56]

SELECT REGEXP_REPLACE(NAME, '^(.)(.+)$', '\1(\2)') NAME, SUBSTR(NAME, 1, 1) || '(' || SUBSTR(NAME, 2) || ')' NAME2
  FROM (SELECT '홍길동' NAME FROM DUAL)

by 마농 [2019.05.29 07:36:13]

두글자 성씨까지 고려하려면 성씨 코드 테이블을 따로 가져가거나 일일히 나열하여 예외처리 해야 할 듯 하네요.

WITH t AS
(
SELECT '인사' dept, '홍길동' name FROM dual
UNION ALL SELECT '총무', '이순신' FROM dual
UNION ALL SELECT '책략', '제갈량' FROM dual
UNION ALL SELECT '홍보', '박차고나온노미새미나' FROM dual
UNION ALL SELECT '장수', '김수한무거북이와두루미삼천갑자동방삭치치카포사리사리센타워리워리세브리깡무두셀라구름이허리케인에담벼락담벼락에서생원서생원에고양이고양이엔바둑이바둑이는돌돌이' FROM dual
)
SELECT dept
     , name
     , REGEXP_REPLACE(name, '^(강전|남궁|독고|동방|망절|사공|서문|선우|소봉|장곡|제갈|황보|.)(.+)', '\1(\2)') nm
  FROM t
;

 

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