Funktionen in SQLScript mit regulären Ausdrücken

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
Vimeo

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von Vimeo.
Mehr erfahren

Video laden

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