by 쥬발자 [Oracle 기초] [2022.05.23 10:47:12]
만약 '가가가가가' 라는 문자가 있을때 오른쪽에서 지정문자 '가' 를 하나만 제거해주고 싶었는데
RTRIM은 전체를 다 없애서 null이 나오더라구요.... ==> RTRIM('가가가가가','가')
문자열에서 지정문자 "한개"만을 없애는 방법이 있을까요...?
결과값이 가가가가가 => 가가가가 로 나오게요....
마지막 한글자라면 substr, length 사용하시면 될듯합니다. 패턴이 있다면 regexp_replace 등을 사용하시고요.
WITH
t
AS
(
SELECT
'가나다'
v
FROM
dual
UNION
ALL
'가가가'
'다나가'
)
,
CASE
WHEN
LIKE
'가%'
THEN
SUBSTR(v, 2)
ELSE
END
x
REPLACE
(SUBSTR(v, 1, 1),
'가'
) || SUBSTR(v, 2) x
, REGEXP_REPLACE(v,
'^가'
) x
;