Für Video bitte runterscrollen
Schritt für Schritt Tutorial #
Das Regelwerk ermöglicht es auf einfache Weise SQL Funktionen auf die ausgewählten Datensätze anzuwenden.
Hier zeigen wir die REPLACE Funktion am Beispiel eines einfachen Textes, aber auch eines Textes mit HTML Tags.
Die Standard REPLACE SQL Syntax lautet
REPLACE(string1, old_chars, new_chars)
Damit wir uns im Regelwerk immer auf die bereitgestellten Daten beziehen ersetzen wir string1 mit @value
REPLACE(@value, old_chars, new_chars)
Einfache REPLACE Funktion #
Wollen wir jetzt aus folgendem Text die „-“ Zeichen entfernen geht das wie folgt.
12-34-12-34
REPLACE(@value,"-","")
Das Ergebnis ist
12341234
REPLACE mit ASCII Encoding #
Es gibt aber auch Zeichen die nicht ohne Encodierung durch SQL verarbeitet werden können. Die ist oft bei HTML-Tags der Fall. Im Folgenen verwenden wir einen neuen Beispieltext.
<p>Dies ist ein Website-Text</p>
Wollen wir jetzt die HTML Tags entfernen und bauen die REPLACE Funktion einfach mit „<p>“ auf, erhalten wir einen Fehler, da SQL das „<“ nicht richtig interpretieren kann.
Hier müssen wir auf das ASCII encoding zurückgreifen (klicke hier für eine Übersichtsliste)
Der ASCII Code für „<“ lautet 60. Um das „<“ zu ersetzen müssen wir die REPLACE Funktion wie folgt aufbauen
REPLACE(@value,char(60),"")
Das Ergebnis ist
p>Dies ist ein Website-Text/p>
Verschachtelte REPLACE Funktion #
Verschachteln wir die REPLACE Funktion können wir weitere Zeichen ersetzen
REPLACE(REPLACE(@value,char(60),""),char(62))
Das Ergebnis ist
pDies ist ein Website-Text/p
Das Problem beim Verschachteln ist allerdings, dass wir ggfls. Zeichenfolgen und nicht einzelne unabhängige Zeichen ersetzen wollen. Denn wenn wir eine weitere Verschachtelung hinzufügen und das „p“ ersetzen werden auch alle „p“ ersetzt die nicht mit dem HTML-Tag zu tun haben. Daher müssen wir den gesamte string „<p>“ und „</p>“ ersetzen.
ASCII Zeichenfolgen #
Dies können wir entweder durch die Funktion CONCAT oder mit einem einfachen „+“ Operator machen.
CONCAT #
CONCAT ( expression1, expression2 )
Die REPLACE Funktion sieht dann für „<p>“ wie folgt aus
REPLACE(@value,CONCAT(char(60),"p",char(62)),"")
Und für „<p>“ und „</p>“
REPLACE(REPLACE(@value,CONCAT(char(60),"p",char(62)),""),CONCAT(char(60),char(47),"p",char(62)),"")
Das Ergebnis ist
Dies ist ein Website-Text
+ #
Die REPLACE Funktion sieht dann für „<p>“ wie folgt aus
REPLACE(@value,char(60) + "p" + char(62),"")
Und für „<p>“ und „</p>“
REPLACE(REPLACE(@value,char(60) + "p" + char(62),""),char(60) + char(47) + "p" + char(62),"")