Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich Teilzeichenfolgen in Oracle SQL vor einem bestimmten Zeichen?

Wie extrahiere ich Teilzeichenfolgen in Oracle SQL vor einem bestimmten Zeichen?

Susan Sarandon
Susan SarandonOriginal
2025-01-03 15:38:38911Durchsuche

How to Extract Substrings in Oracle SQL Before a Specific Character?

Abrufen von Teilzeichenfolgen bis zu einem bestimmten Zeichen in Oracle SQL

Das Auswählen von Teilzeichenfolgen aus einer Tabellenspalte, aber die Beschränkung des Bereichs auf ein bestimmtes Zeichen kann sein herausfordernd. Stellen Sie sich ein Szenario vor, in dem Sie eine Spalte mit Werten haben, die als „ABC_blahblahblah“ formatiert sind. Ziel ist es, nur den Teil vor dem Unterstrich zu extrahieren.

Die SUBSTRING-Funktion, die auf einer positionsbasierten Auswahl basiert, reicht nicht aus, da die Position des Unterstrichs variiert. RTRIM, das darauf abzielt, bestimmte Zeichen vom Ende einer Zeichenfolge zu entfernen, entspricht nicht genau der Anforderung.

Um dieser Herausforderung zu begegnen, kann eine Kombination von Oracle SQL-Funktionen eingesetzt werden. Durch die Nutzung von SUBSTR, INSTR und NVL können wir die gewünschten Ergebnisse erzielen:

SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
  FROM DUAL

Erklärung:

  • NVL stellt ein gültiges Ergebnis sicher, auch wenn der Teilstring kein enthält Unterstrich.
  • SUBSTR extrahiert einen Teil der Zeichenfolge, beginnend bei Position 0 (dem Anfang) und endend ein Zeichen vor dem unterstreichen. INSTR ermittelt die Position des Unterstrichs.
  • Das Ergebnis wird der Ausgabespalte zugewiesen.

Verwendung:

SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
  FROM YOUR_TABLE t

In Oracle10g kann REGEXP_SUBSTR verwendet werden um einen regulären Ausdrucksabgleich durchzuführen und so einen alternativen Ansatz zum Extrahieren der gewünschten Teilzeichenfolge bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich Teilzeichenfolgen in Oracle SQL vor einem bestimmten Zeichen?. 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