문자열 제거 0 2 952

by 쥬발자 [Oracle 기초] [2022.05.23 10:47:12]


만약 '가가가가가' 라는 문자가 있을때 오른쪽에서 지정문자 '가' 를 하나만 제거해주고 싶었는데

RTRIM은 전체를 다 없애서 null이 나오더라구요.... ==> RTRIM('가가가가가','가')

문자열에서 지정문자 "한개"만을 없애는 방법이 있을까요...?

결과값이 가가가가가 => 가가가가 로 나오게요....

by pajama [2022.05.23 10:57:13]

마지막 한글자라면 substr, length 사용하시면 될듯합니다. 패턴이 있다면 regexp_replace 등을 사용하시고요.


by 마농 [2022.05.23 15:58:30]
WITH t AS
(
SELECT '가나다' v FROM dual
UNION ALL SELECT '가가가' v FROM dual
UNION ALL SELECT '다나가' v FROM dual
)
SELECT v
     , CASE WHEN v LIKE '가%' THEN SUBSTR(v, 2) ELSE v END x
     , REPLACE(SUBSTR(v, 1, 1), '가') || SUBSTR(v, 2) x
     , REGEXP_REPLACE(v, '^가') x
  FROM t
;

 

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