> 데이터 베이스 > Oracle > Oracle의 대체 기능은 무엇입니까?

Oracle의 대체 기능은 무엇입니까?

青灯夜游
풀어 주다: 2022-02-24 18:12:34
원래의
14267명이 탐색했습니다.

oracle의 대체 함수는 다음과 같습니다. 1. 번역() 함수, 구문 "TRANSLATE(char, from, to)"; 2. 대체() 함수, 구문 "REPLACE(문자열, 검색 값, 대체 값)".

Oracle의 대체 기능은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

oracle

1.translate

의 함수 바꾸기 바꾸기 및 번역 함수: TRANSLATE(char, from, to)TRANSLATE(char, from, to)

用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。

            若from比to字符串长,那么在from中比to中多出的字符将会被删除。

            三个参数中有一个是空,返回值也将是空值。

举例:

SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
로그인 후 복사

返回值

 wodefgw
로그인 후 복사

分析:

该语句要将'abcdefga'中的'abc'转换为'wo',由于'abc'中'a'对应'wo'中的'w',故将'abcdefga'中的'a'全部转换成'w';

而'abc'中'b'对应'wo'中的'o',故将'abcdefga'中的'b'全部转换成'o';

'abc'中的'c'在'wo'中没有与之对应的字符,故将'abcdefga'中的'c'全部删除;

简单说来,就是将from中的字符转换为to中与之位置对应的字符,若to中找不到与之对应的字符,返回值中的该字符将会被删除。

在实际的业务中,可以用来删除一些异常数据,比如表a中的一个字段t_no表示电话号码,而电话号码本身应该是一个由数字组成的字符串,为了删除那些含有非数字的异常数据,就用到了translate函数:

SQL> delete from a,
          where length(translate(trim(a.t_no),
                   '0123456789' || a.t_no,
                             &#39;0123456789&#39;)) <> length(trim(a.t_no));
로그인 후 복사

2.replace

语法:REPLACE(char, search_string,replacement_string)

사용법: Return은 각각에서 나타납니다. 문자 in은 to에 해당하는 문자 뒤에 오는 문자열로 대체됩니다. T From이 TO 문자열보다 길면 from에 있는 추가 문자가 삭제됩니다. +                                                                                           세 매개 변수 중 하나가 비어 있는 경우 반환 값도 null 값이 됩니다.

예:

SQL> select REPLACE(&#39;fgsgswsgs&#39;, &#39;fk&#39; ,&#39;j&#39;) 返回值 from dual;
로그인 후 복사

반환 값

fgsgswsgs
로그인 후 복사

분석:

이 명령문은 'abcdefga'의 'abc'를 'wo'로 변환하는 것입니다. 'abc'의 'a'가 'w'에 해당하기 때문입니다. 'wo''이므로 'abcdefga'의 모든 'a'는 'w'로 변환됩니다.

'abc'의 'b'는 'wo'의 'o'에 해당하므로 'abcdefga의 모든 'b' '는 'o'로 변환됩니다.

'abc'의 'c'는 'wo'에 해당 문자가 없으므로 'abcdefga'의 'c'를 모두 삭제합니다. in의 문자는 to의 위치에 해당하는 문자로 변환됩니다. to에서 해당 문자를 찾을 수 없으면 반환 값의 문자가 삭제됩니다.
  • 실제 업무에서는 일부 비정상적인 데이터를 삭제하는 데 사용할 수 있습니다. 예를 들어 테이블 a의 t_no 필드는 전화번호를 나타내며, 전화번호 자체는 숫자로 구성된 문자열이어야 합니다. 숫자가 아닌 데이터의 경우 번역 기능이 사용됩니다:

    SQL> select REPLACE(&#39;fgsgswsgs&#39;, &#39;sg&#39; ,&#39;eeerrrttt&#39;) 返回值 from dual;
    로그인 후 복사

  • 2.replace
  • 구문: REPLACE(char, search_string,replacement_string)
사용법: char의 모든 문자열 search_string을 다음으로 변환합니다. 문자 문자열 교체_문자열.

예제 1:

fgeeerrrtttsweeerrrttts
로그인 후 복사
반환 값 rrreee예제 2: 🎜rrreee🎜반환 값 🎜rrreee🎜분석: 🎜🎜🎜🎜첫 번째 예에서는 'fgsgswsgs'에 'fk'와 일치하는 문자열이 없으므로, 따라서 , 반환 값은 여전히 ​​'fgsgswsgs'입니다. 🎜🎜🎜🎜두 번째 예에서는 'fgsgswsgs'의 모든 문자열 'sg'가 'eeerrrttt'로 변환됩니다. 🎜🎜🎜🎜요약: 바꾸기와 번역은 모두 대체 함수입니다. 단, 바꾸기는 문자열을 대상으로 하고 번역은 단일 문자를 대상으로 합니다. 🎜🎜추천 튜토리얼: "🎜Oracle Tutorial🎜"🎜

위 내용은 Oracle의 대체 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿