VARCHAR in separate Spalten in Oracle aufteilen
Die Aufgabe, eine VARCHAR-Spalte basierend auf einem bestimmten Trennzeichen in separate Spalten umzuwandeln, stellt eine einzigartige Herausforderung dar in Datenbankmanagementsystemen. Diese Frage untersucht die Machbarkeit der Definition von Spalten, nachdem die Ergebnismenge strukturiert wurde, um eine Zeichenfolge in mehrere Teile aufzuteilen.
Datenabruf und -transformation
Hier Szenario bestehen die Eingabedaten aus Kommentaren mit einem bestimmten Zeichenfolgenmuster. Das Ziel besteht darin, diese Kommentare in zwei separate Spalten aufzuteilen, wobei der erste Abschnitt des Kommentars in der ersten Spalte und der restliche Text in der zweiten Spalte erscheint. Wenn der abgerufene Wert beispielsweise lautet:
COLUMN_ONE -------------------- 'D7ERROR username'
Die gewünschte Ausgabe wäre:
COL_ONE COL_TWO -------------------- D7ERROR username
Lösung mit SUBSTR und INSTR
Vorausgesetzt, dass die Daten einen konsistenten Abstand zwischen den gewünschten Spalten aufweisen, kann die folgende Abfrage verwendet werden:
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, ' ')-1) AS col_one, SUBSTR(t.column_one, INSTR(t.column_one, ' ')+1) AS col_two FROM YOUR_TABLE t
Dies Die Abfrage verwendet die SUBSTR-Funktion, um Teile der Zeichenfolge basierend auf der Position des ersten Leerzeichens (wie durch INSTR bestimmt) zu extrahieren. Das Ergebnis sind die gewünschten zwei Spalten, wobei das Trennzeichen entfernt wurde.
Erweiterte Funktionen von Oracle 10g
Für Oracle 10g und spätere Versionen stehen flexiblere Optionen mithilfe regulärer Ausdrücke zur Verfügung (Regex). Die Funktion REGEXP_SUBSTR ermöglicht einen leistungsstarken Mustervergleich und String Manipulation.
Referenzen:
Das obige ist der detaillierte Inhalt vonWie kann ich eine VARCHAR-Spalte in Oracle in mehrere Spalten aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!