REPLACE
REPLACE (문자열 치환)
지정한 부분 문자열의 모든 발생을 제거하고, 선택적으로 다른 부분 문자열로 대체해요.
본문
구문
REPLACE( <subject> , <pattern> [ , <replacement> ] )
인자
subject
치환을 수행할 문자열이에요. 일반적으로 컬럼이지만 리터럴일 수도 있어요.
pattern
치환하려는 부분 문자열이에요. 일반적으로 리터럴이지만 컬럼이나 표현식일 수도 있어요. 이는 "정규식"이 아니라는 점에 주의하세요. 정규식을 사용해 패턴을 검색하려면 REGEXP_REPLACE 함수를 사용해요.
replacement
패턴의 대체값으로 사용하는 값이에요. 생략하거나 빈 문자열이면 REPLACE 함수는 패턴의 모든 발생을 단순히 삭제해요.
반환 값
모든 치환이 수행된 후의 문자열을 반환해요.
사용 참고 사항
replacement를 지정하지 않으면subject에서pattern의 모든 발생을 제거한 결과를 반환해요.replacement를 지정하면subject에서pattern의 모든 발생을replacement로 바꾼 결과를 반환해요.- 인자 중 하나라도 NULL이면 결과도 NULL이에요.
참고: 원본 subject에서의 발생만 고려돼요. 결과에 나타나는 패턴은 제거/치환되지 않아요.
데이터 정렬(collation) 상세
모든 입력 인자의 데이터 정렬 지정은 호환되어야 해요.
이 함수는 다음 데이터 정렬 지정을 지원하지 않아요:
- pi(구두점 비구분, punctuation-insensitive)
- cs-ai(대소문자 구분, 악센트 비구분)
예시
down 문자열을 up 문자열로 치환해요:
SELECT REPLACE('down', 'down', 'up');
+-------------------------------+
| REPLACE('DOWN', 'DOWN', 'UP') |
|-------------------------------|
| up |
+-------------------------------+
문자열 Vacation in Athens에서 부분 문자열 Athens를 Rome으로 치환해요:
SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');
+-------------------------------------------------+
| REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') |
|-------------------------------------------------|
| Vacation in Rome |
+-------------------------------------------------+
문자열 abcd에서 부분 문자열 bc를 빈 부분 문자열로 치환해요:
SELECT REPLACE('abcd', 'bc');
+-----------------------+
| REPLACE('ABCD', 'BC') |
|-----------------------|
| ad |
+-----------------------+
테이블의 값을 새 값으로 치환해요. 테이블을 만들고 채워요:
CREATE OR REPLACE TABLE replace_example( subject VARCHAR(10), pattern VARCHAR(10), replacement VARCHAR(10));
INSERT INTO replace_example VALUES ('old car', 'old car', 'new car'), ('sad face', 'sad', 'happy'), ('snowman', 'snow', 'fire');
값의 문자열을 지정한 치환 값으로 치환해요:
SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example ORDER BY subject;
+----------+---------+-------------+------------+
| SUBJECT | PATTERN | REPLACEMENT | NEW |
|----------+---------+-------------+------------|
| old car | old car | new car | new car |
| sad face | sad | happy | happy face |
| snowman | snow | fire | fireman |
+----------+---------+-------------+------------+
출력은 다음 치환들을 보여줘요:
old car문자열이new car문자열로 치환됐어요.sad face문자열에서 부분 문자열sad가happy로 치환되어 새 문자열happy face가 만들어졌어요.snowman문자열에서 부분 문자열snow가fire로 치환되어 새 문자열fireman이 만들어졌어요.