Heim  >  Artikel  >  Datenbank  >  Welche Ersetzungsfunktionen gibt es in Oracle?

Welche Ersetzungsfunktionen gibt es in Oracle?

青灯夜游
青灯夜游Original
2022-02-24 18:12:3414215Durchsuche

Die Ersetzungsfunktionen von Oracle sind: 1. Funktion „translate()“, Syntax „TRANSLATE(char, from, to)“; 2. Funktion „replace()“, Syntax „REPLACE (string, search value, replacement value)“.

Welche Ersetzungsfunktionen gibt es in Oracle?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.

Funktion ersetzen und Funktion in Oracle übersetzen

1.translate

Syntax: 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)

Verwendung: Return erscheint in from Each Das Zeichen in wird durch die Zeichenfolge ersetzt, die dem entsprechenden Zeichen in bis folgt. T Wenn der From-String länger als der To-String ist, werden die Zeichen gelöscht, die länger im From-TO-String stehen.

                                                                                                                                                                                                       Wenn einer der drei Parameter leer ist, ist der Rückgabewert ebenfalls ein Nullwert.

Beispiel:

SQL> select REPLACE(&#39;fgsgswsgs&#39;, &#39;fk&#39; ,&#39;j&#39;) 返回值 from dual;

Rückgabewert

fgsgswsgs

Analyse:

Diese Anweisung dient dazu, das „abc“ in „abcdefga“ in „wo“ umzuwandeln, da das „a“ in „abc“ dem „w“ in entspricht 'wo' ', also werden alle 'a's in 'abcdefga' in 'w' umgewandelt

Und das 'b' in 'abc' entspricht dem 'o' in 'wo', also alle 'b's in '; „abcdefga“ wird in „o“ umgewandelt;
  • Das „c“ in „abc“ hat kein entsprechendes Zeichen in „wo“, also löschen Sie alle „c“ in „abcdefga“

    Einfach gesagt, es soll geändert werden from Die Zeichen in werden in die Zeichen umgewandelt, die ihrer Position in to entsprechen. Wenn die entsprechenden Zeichen in to nicht gefunden werden können, werden die Zeichen im Rückgabewert gelöscht.
  • Im tatsächlichen Geschäft kann es zum Löschen einiger abnormaler Daten verwendet werden. Beispielsweise stellt ein Feld t_no in Tabelle a eine Telefonnummer dar, und die Telefonnummer selbst sollte eine Zeichenfolge sein, die aus Zahlen besteht, um diese Ausnahmen zu löschen Nicht-Zahlen Für Daten wird die Übersetzungsfunktion verwendet:

    SQL> select REPLACE(&#39;fgsgswsgs&#39;, &#39;sg&#39; ,&#39;eeerrrttt&#39;) 返回值 from dual;

  • 2.replace

Syntax: REPLACE(char, search_string,replacement_string)

Verwendung: Konvertieren Sie alle Zeichenfolgen search_string in char in Zeichenkette replacement_string.

Beispiel 1: 🎜
fgeeerrrtttsweeerrrttts
🎜Rückgabewert 🎜rrreee🎜Beispiel 2: 🎜rrreee🎜Rückgabewert 🎜rrreee🎜Analyse: 🎜🎜🎜🎜Im ersten Beispiel gibt es keine Zeichenfolge, die mit „fk“ übereinstimmt gsgswsgs', Daher , der Rückgabewert ist immer noch „fgsgswsgs“; 🎜🎜🎜🎜Im zweiten Beispiel wird die gesamte Zeichenfolge „sg“ in „fgsgswsgs“ in „eeerrrttt“ konvertiert. 🎜🎜🎜🎜Zusammenfassung: Zusammenfassend sind „replace“ und „translate“ beide Ersetzungsfunktionen, mit der Ausnahme, dass „replace“ auf eine Zeichenfolge abzielt, während „translate“ auf ein einzelnes Zeichen abzielt. 🎜🎜Empfohlenes Tutorial: „🎜Oracle Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonWelche Ersetzungsfunktionen gibt es in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn