Heim >Datenbank >MySQL-Tutorial >Wie extrahiere ich mithilfe von REGEXP_SUBSTR() zuverlässig bestimmte Werte aus durch Kommas getrennten Listen mit NULL-Werten?
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:
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!