Heim >Datenbank >Oracle >So fangen Sie einige Zeichen in einer Zeichenfolge in Oracle ab

So fangen Sie einige Zeichen in einer Zeichenfolge in Oracle ab

青灯夜游
青灯夜游Original
2022-02-14 12:47:0556636Durchsuche

In Oracle können Sie die Funktionen Instr() und substr() verwenden, um einen Teil der Zeichen in der Zeichenfolge abzufangen. Die Syntax lautet „SUBSTR(‘Abzufangende Zeichenfolge‘, Abfangposition, INSTR(‘Zu abfangende Zeichenfolge‘ abgefangen" ,'','Startposition suchen','Anzahl der Vorkommen')-1) ".

So fangen Sie einige Zeichen in einer Zeichenfolge in Oracle ab

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

Oracle fängt einen Teil der Zeichenfolge im Feld ab

Verwenden Sie die Funktionen Instr() und substr() in Oracle:

In Oracle können Sie die Funktion instr verwenden, um eine Zeichenfolge zu beurteilen und festzustellen, ob Es enthält die angegebenen Zeichen.

Die Syntax lautet:

instr(sourceString,destString,start,appearPosition).   
instr('源字符串' , '目标字符串' ,'开始位置','第几次出现')

wobei

  • sourceString die Quellzeichenfolge darstellt;

  • destString die in der Quellzeichenfolge zu findende Teilzeichenfolge darstellt;

  • start die Startposition der Suche darstellt Parameter Optional, der Standardwert ist 1;

  • appearPosition gibt an, wie viele Vorkommen von destString Sie im Quellzeichen finden möchten. Dieser Parameter ist ebenfalls optional und der Standardwert ist 1; eine negative Zahl. Dann wird die Suche von rechts nach links durchgeführt, die Positionsdaten werden jedoch weiterhin von links nach rechts berechnet.

  • Der Rückgabewert ist: die Position der gefundenen Zeichenfolge.

Für die Funktion instr verwenden wir sie oft so: Finden Sie die Position des angegebenen Teilstrings aus einem String. Zum Beispiel:

SQL> select instr('yuechaotianyuechao','ao') position from dual;
 POSITION
 ----------
 6

Beginnen Sie die Suche ab dem 7. Zeichen.

SQL> select instr('yuechaotianyuechao','ao', 7) position from dual;
 POSITION
 ----------
 17

Beginnen Sie mit dem 1. Zeichen und suchen Sie nach dem zweiten Vorkommen der Teilzeichenfolge.

SQL> select instr('yuechaotianyuechao','ao', 1, 2) position from dual;
 POSITION
 ----------
 17

Für die Funktion instr verwenden wir sie oft so: Finden Sie den angegebenen Wert aus a string Die Position des Teilstrings. Zum Beispiel:

SQL> select instr('abcdefgh','de') position from dual; 
POSITION 
---------- 
4

Ab 1 steht d an vierter Stelle, daher wird 4 zurückgegeben.

SQL>select instr('abcdefghbc','bc',3) position from dual; 
POSITION 
---------- 
9

Ab dem 3. Zeichen ist das dritte Zeichen c. Die Suche nach bc in der Zeichenfolge ab 3 ergibt also 9

Die Verwendung Die Funktion substr besteht darin, die Zeichenfolge mit der angegebenen Startposition und Länge in der Zeichenfolge abzurufen. Der Standardwert ist die Teilzeichenfolge von der Startposition bis zum Ende.

 substr( string, start_position, [ length ] )       substr('目标字符串',开始位置,长度)

Zum Beispiel:

      substr('This is a test', 6, 2)     would return 'is' 
      substr('This is a test', 6)     would return 'is a test' 
      substr('TechOnTheNet', -3, 3)     would return 'Net' 
      substr('TechOnTheNet', -6, 3)     would return 'The'select substr('Thisisatest', -4, 2) value from dual

SUBSTR()-Funktion

1 Verwendung: Gibt eine Teilzeichenfolge aus einem bestimmten Zeichenausdruck oder Memofeld zurück. 2. Grammatikformat:

substr(string string, int a, int b);
substr(string string, int a) ; 

Format 1:

1. string Der String, der abgefangen werden muss

2. a fängt die Startposition des Strings ab (Hinweis: Wenn a gleich 0 oder 1 ist, ist es beginnt beim ersten 3. b Die Länge der abzufangenden Zeichenfolge

Format 2:

1. Zeichenfolge Die abzufangende Zeichenfolge

2. a kann als Abfangen aller nachfolgenden Zeichen ab dem a-ten Zeichen verstanden werden Zeichenfolge.

oracle fängt die Zeichenfolge ab

C3411.907w15 fängt die Zeichenfolge C3411 vor dem Punkt SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1) ab

Schneiden Sie die Zeichenfolge 907w15 nach dem Punkt von C3411.907w15 ab. SUBSTR ('C3411.907w15', INSTR ('C3411.907w15', '.', 1, 1)+1)

SELECT SUBSTR ('C3411.907w15', 0, INSTR ('C3411.907w15, '.', 1, 1) - 1)
  FROM DUAL
Beispiele für Projektanwendungen:

Originalzeichenfolge:

Im Originalfeld stehen 7 „_“. Jetzt möchte ich nur noch die Zeichenfolge nach dem letzten „_“ herausnehmen.

Zwei Schritte:

Der erste Schritt besteht darin, das 7. „_“-Zeichen über die Funktion Instr() zu finden:

select instr('Qfang.com Group_Brokerage Division_South China District_Shenzhen Shihua_ Sales Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Fifth Branch' ,'_', 1, 7) fdisplayname von SHENZHENJM1222.B

oder:

select instr('QFang.com Group_ Brokerage Division_South China District_Shenzhen Shihua_Sales Department_Nanshan Qianhai District_Qianhai Central Area_Qianhai Fifth Branch', '_',

-1, 1

) fdisplayname FROM SHENZHENJM1222.B

Beide Der Effekt ist der gleiche. -1 unten bedeutet, dass das Startzeichen von rechts gezählt wird, 1 bedeutet, das erste „_“ zu erhalten in der Abbildung:

Schritt 2, übergeben Sie die Funktion substr(), entfernen Sie die erforderlichen Felder:

select substr(

fdisplayname

,instr(fdisplayname,'_',-1,1 )+1

) fdisplayname von SHENZHENJM1222.B

fdisplayname

: stellt den Feldnamen dar, äquivalent zum Metastring

Konzentrieren wir uns darauf+1

+1 bedeutet, die erste Zeichenfolge nach der Zielzeichenfolge "_" abzufangen, schauen wir uns die Situation verschiedener Zahlen an:

Wählen Sie aus substr(

fdisplayname,instr(fdisplayname,'_',-1,

1

)+1) fdisplayname von SHENZHENJM1222.BWerfen wir einen Blick auf instr(fdisplayname,'_', -1,

1) Was bedeutet 1 in:

.

Empfohlenes Tutorial: „

Oracle Tutorial

Das obige ist der detaillierte Inhalt vonSo fangen Sie einige Zeichen in einer Zeichenfolge in Oracle ab. 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