Funktionen in SQLScript mit regulären Ausdrücken

Herzlich Willkommen auf der Seite von Brandeis Training!

Sie sind nicht angemeldet bzw. eingeschrieben in diesen Kurs,  weshalb Sie nicht alle Inhalte sehen können. Auf der linken Seite befindet sich das Inhaltsverzeichnis. Dort gibt es aber ein paar kostenlose Probelektionen, die Sie am gleichen gelben Hintergrund und dem Schloss-Symbol erkennen können.

In SQLScript können wir reguläre Ausdrücke (Regex) zum Suchen, Ersetzen und Zerlegen in Zeichenketten verwenden. Für die Arbeit mit der HANA sind sie unersetzlich.

Bei Regex handelt es sich um eine formale Sprache zur Beschreibung von Mengen von Zeichenketten. In SQLScript gibt es einige Funktionen, die diese auswerten können. Dazu gehören:

  • LOCATE_REGEXPR() – Suche in Zeichenketten
  • OCCURRENCES_REGEXPR()– Zählt die Anzahl von Zeichenketten, die dem Muster entsprechen
  • REPLACE_REGEXPR() – ersetzt Zeichenketten, wobei mit Gruppe einzelne Teile der Regex in der Ersetzung wieder verwendet werden können.
  • SUBSTR_REGEXPR() – extrahiert eine mit Regex festgelegte Zeichenkette

Beispiel aus dem Video

Es sollen aus dem Feld LIEFER_ID

  • die Zahl zwischen dem 2. und 3. Bindestrich und
  • die Zahl nach der Zeichenkette INT

extrahiert werden. Dafür verwenden wir die SQLScript Funktion SUBSTR_REGEXPR für das Zerlegen mit regulären Ausdrücken:

create table vertraege (liefer_id nvarchar(30));
insert into vertraege values( 'IT1-20190203-1-INT1');
insert into vertraege values( 'IT1-20190203-1-INT2');
insert into vertraege values( 'IT1-20190203-2-INT10');
insert into vertraege values( 'IT1-20190203-2-INT1');
insert into vertraege values( 'IT1-20190203-2-INT2');
insert into vertraege values( 'IT1-20190203-10-INT4');

select liefer_id, 
       to_int(SUBSTR_REGEXPR( '.*-.*-(.*)-.*' in liefer_id group 1 )) as sub,
       to_int(SUBSTR_REGEXPR( '.*INT(.*)' in liefer_id group 1 )) as sort_by
       from vertraege
       order by sub, 
                sort_by;

drop table vertraege;

Weiterführende Links:

Ein deutschsprachiges Tutorial zu regulären Ausdrücken: https://danielfett.de/2006/03/20/regulaere-ausdruecke-tutorial/

Übungsumgebung für Reguläre Ausdrücke: http://www.regexe.de/

Pages 175-179 in the book

This post is also available in: English

Wollen Sie mehr Informationen?

Unverbindliche Anfrage