Heim > Datenbank > MySQL-Tutorial > Wie teile ich durch Kommas getrennte Zeichenfolgen in Oracle in mehrere Zeilen auf?

Wie teile ich durch Kommas getrennte Zeichenfolgen in Oracle in mehrere Zeilen auf?

Barbara Streisand
Freigeben: 2025-01-22 17:36:15
Original
626 Leute haben es durchsucht

How to Split Comma-Delimited Strings into Multiple Rows in Oracle?

String in mehrere Zeilen in der Oracle-Datenbank aufteilen

Einführung

Das Aufteilen einer durch Kommas getrennten Zeichenfolge in mehrere Zeilen ist eine häufige Aufgabe in der Datenverarbeitung. In Oracle 10g und 11g gibt es mehrere Möglichkeiten, dieses Ziel effizient zu erreichen.

Mehrspaltige Aufteilung

Um eine Zeichenfolge mit mehreren Werten in mehrere Spalten aufzuteilen, können Sie eine Kombination aus REGEXP_REPLACE, REGEXP_SUBSTR und hierarchischen Abfragen verwenden.

Abfrage:

WITH temp AS (
    SELECT name, project, error FROM your_table
)
SELECT
    name,
    project,
    TRIM(REGEXP_SUBSTR(error, '[^,]+', 1, levels.column_value)) AS new_error
FROM
    temp,
    TABLE(CAST(
        MULTISET(
            SELECT level FROM dual CONNECT BY level <= REGEXP_COUNT(error, ',') + 1
        ) AS sys.odcinumberlist
    )) levels
WHERE levels.column_value <= REGEXP_COUNT(error, ',') + 1;
Nach dem Login kopieren

Anleitung:

  1. Die Funktion REGEXP_SUBSTR extrahiert die angegebene Anzahl von Vorkommen des angegebenen Musters aus einer Zeichenfolge. Der Spaltenwert in der hierarchischen Abfrage bestimmt das n-te Vorkommen.
  2. Die REGEXP_REPLACE-Funktion entfernt Zeichen ohne Trennzeichen, um die Gesamtzahl der Fehler zu zählen. (Dieser Schritt ist implizit in REGEXP_COUNT in der optimierten Abfrage enthalten)
  3. Die Multiset- und TABLE-Funktionen erstellen einen wachsenden Wertesatz für hierarchische Abfragen.
  4. Der Cross-Join mit der temporären Tabelle wird für jede Zeile und jedes Fehlerauftreten wiederholt.

Fazit

Diese verbesserte Methode bietet eine flexible Möglichkeit, mehrspaltige Zeichenfolgen in mehrere Zeilen in Oracle 10g und 11g aufzuteilen. Es nutzt die integrierten Funktionen und erweiterten Techniken von Oracle wie hierarchische Abfragen, um komplexe Aufgaben zur Zeichenfolgenmanipulation effizient zu bewältigen.

Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennte Zeichenfolgen in Oracle in mehrere Zeilen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage