Heim >Datenbank >MySQL-Tutorial >Wie teilt man eine Zeichenfolge in Oracle SQL basierend auf dem weitesten Vorkommen eines Trennzeichens auf?
Aufteilen einer Zeichenfolge nach Trennzeichenposition mit Oracle SQL
Eine häufige Aufgabe bei der Arbeit mit Zeichenfolgen besteht darin, sie basierend auf a in kleinere Segmente aufzuteilen spezifisches Trennzeichen. Wenn jedoch die Trennzeichenposition innerhalb einer Zeichenfolge variiert, wird die Aufteilung komplexer.
Problemstellung
Angenommen, Sie haben eine Zeichenfolge wie „F/P/O“ und Ich möchte es durch das am weitesten entfernte Vorkommen des Trennzeichens „/“ aufteilen. Das gewünschte Ergebnis besteht darin, die Zeichenfolge in zwei Teile zu trennen: „F/P“ und „O“.
Erster Versuch
Die folgende SQL-Anweisung versucht, die Zeichenfolge zu teilen Zeichenfolge mit den Funktionen SUBSTR und INSTR:
SELECT Substr('F/P/O', 1, Instr('F/P/O', '/') - 1) part1, Substr('F/P/O', Instr('F/P/O', '/') + 1) part2 FROM dual
Diese Abfrage erzeugt jedoch ein unerwartetes Ergebnis und teilt die Zeichenfolge in „F“ und auf „/P/O.“
Auflösung
Das Problem liegt in der Verwendung der INSTR-Funktion. Standardmäßig sucht INSTR nach dem ersten Vorkommen des Trennzeichens, nicht nach dem entferntesten. Um das am weitesten entfernte Trennzeichen zu finden, sollte die INSTR-Funktion so geändert werden, dass sie vom Ende der Zeichenfolge aus sucht:
SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1, SUBSTR(str, Instr(str, '/', -1, 1) +1) part2 FROM DATA
Durch Starten der Suche am Ende (angezeigt durch die negative start_position -1) kann die INSTR-Funktion Sucht das letzte Vorkommen des Trennzeichens und teilt die Zeichenfolge entsprechend in „F/P“ und „O“ auf. Dieser Ansatz stellt sicher, dass die Teilung auch bei mehreren Trennzeichen in der Zeichenfolge an der am weitesten entfernten Position erfolgt.
Das obige ist der detaillierte Inhalt vonWie teilt man eine Zeichenfolge in Oracle SQL basierend auf dem weitesten Vorkommen eines Trennzeichens auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!