카테고리:

문자열 및 이진 함수 (일치/비교)

REPLACE

지정된 하위 문자열이 발생할 때마다 해당 문자열을 제거하고, 선택적으로 다른 하위 문자열로 바꿉니다.

구문

REPLACE( <subject> , <pattern> [ , <replacement> ] )
Copy

인자

subject

주제는 대체를 수행할 문자열입니다. 일반적으로 이는 열이지만, 리터럴일 수 있습니다.

pattern

이는 바꾸려는 하위 문자열입니다. 일반적으로 이는 리터럴이지만, 열 또는 식일 수 있습니다. 이는 “정규식”이 아닙니다. 정규식을 사용하여 패턴을 검색하려면 REGEXP_REPLACE 함수를 사용하십시오.

replacement

pattern 을 대체하는 데 사용되는 값입니다. 이 값이 생략되거나 빈 문자열인 경우, REPLACE 함수는 단순히 pattern 의 모든 발생 항목을 삭제합니다.

반환

반환된 값은 모든 대체가 완료된 후의 문자열입니다.

사용법 노트

  • replacement 를 지정하지 않는 경우, 모든 subject 발생 항목이 제거된 상태로 pattern 이 반환됩니다.

  • replacement 가 지정된 경우, 모든 pattern 발생 항목이 replacement 로 대체된 상태로 subject 가 반환됩니다.

  • 인자 중 하나라도 NULL인 경우, 결과도 NULL입니다.

참고

원래 subject 의 발생 항목만 고려됩니다. 결과에서 발생하는 pattern 은 제거/대체되지 않습니다.

데이터 정렬 세부 정보

The collation specifications of all input arguments must be compatible.

이 함수는 다음 데이터 정렬 사양을 지원하지 않습니다.

  • pi (구두점 구분 안 함).

  • cs-ai (대/소문자 구분, 악센트 구분 안 함).

참고

upper 또는 lower 데이터 정렬 지정자가 있는 열에 이 함수를 사용하려면 계정에서 2024_02 동작 변경 번들을 활성화 해야 합니다.

계정에서 이 번들을 활성화하려면 다음 문을 실행하십시오.

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Copy

문자열 down 을 문자열 up 으로 바꿉니다.

SELECT REPLACE('down', 'down', 'up');
Copy
+-------------------------------+
| REPLACE('DOWN', 'DOWN', 'UP') |
|-------------------------------|
| up                            |
+-------------------------------+

문자열 Vacation in Athens 의 하위 문자열 Athens 를 하위 문자열 Rome 으로 바꿉니다.

SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');
Copy
+-------------------------------------------------+
| REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') |
|-------------------------------------------------|
| Vacation in Rome                                |
+-------------------------------------------------+

문자열 abcd 의 하위 문자열 bc 를 빈 하위 문자열로 바꿉니다.

SELECT REPLACE('abcd', 'bc');
Copy
+-----------------------+
| 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');
Copy

값의 문자열을 지정된 대체로 대체합니다.

SELECT subject,
       pattern,
       replacement,
       REPLACE(subject, pattern, replacement) AS new
  FROM replace_example
  ORDER BY subject;
Copy
+----------+---------+-------------+------------+
| 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 를 생성했습니다.