Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich mithilfe von REGEXP_SUBSTR() zuverlässig bestimmte Werte aus durch Kommas getrennten Listen mit NULL-Werten?

Wie extrahiere ich mithilfe von REGEXP_SUBSTR() zuverlässig bestimmte Werte aus durch Kommas getrennten Listen mit NULL-Werten?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-29 00:44:13363Durchsuche

How to Reliably Extract Specific Values from Comma-Separated Lists Containing NULLs Using REGEXP_SUBSTR()?

REGULÄRER AUSDRUCK ZUM AUSWÄHLEN EINZELNER WERTE AUS EINER LISTE MIT NULLEN

Problem:

REGEXP_SUBSTR () kann den gewünschten n-ten Wert nicht aus a abrufen Durch Kommas getrennte Liste, wenn Nullen vorhanden sind. Wenn ein Wert null ist, wird der nächste Nicht-Null-Wert beim n-ten Vorkommen zurückgegeben.

Lösung:

Um dieses Problem zu beheben, wurde ein REGEXP_SUBSTR()-Ausdruck geändert kann verwendet werden:

REGEXP_SUBSTR('1,,3,4,5', '(.*?)(,|$)', 1, 2, NULL, 1)

Dieser Ausdruck erfasst die gewünschten Daten, indem er diesen folgt Schritte:

  1. (.*?): Entspricht null oder mehr optionalen Zeichen.
  2. (,|$): Entspricht entweder einem Komma oder dem Ende der Zeile.
  3. 1: Gibt an, dass die erste übereinstimmende Gruppe (Untergruppe) die gewünschten Daten sind.
  4. 2: Legt das Vorkommen fest, um das gewünschte n-te auszuwählen Wert.
  5. NULL: Gibt null zurück, wenn für das angegebene Vorkommen keine Übereinstimmung gefunden wird.

Wiederverwendbare Funktion:

Für einfachere und mehr Zur bequemen Verwendung kann dieser modifizierte REGEXP_SUBSTR()-Ausdruck in PL/SQL gekapselt werden Funktion:

FUNCTION GET_LIST_ELEMENT(string_in VARCHAR2, element_in NUMBER, delimiter_in VARCHAR2 DEFAULT ',') RETURN VARCHAR2 IS
BEGIN
  RETURN REGEXP_SUBSTR(string_in, '(.*?)(\'||delimiter_in||'|$)', 1, element_in, NULL, 1);
END GET_LIST_ELEMENT;

Beispielverwendung:

So rufen Sie das 4. Element aus der Liste „123.222,432.555“ ab:

select get_list_element('123,222,,432,555', 4) from dual;

Das obige ist der detaillierte Inhalt vonWie extrahiere ich mithilfe von REGEXP_SUBSTR() zuverlässig bestimmte Werte aus durch Kommas getrennten Listen mit NULL-Werten?. 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