Regelwerk: SQL REPLACE Funktion - entitys.io Regelwerk: SQL REPLACE Funktion - entitys.io

Regelwerk: SQL REPLACE Funktion

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),"")

Video zum Artikel #

Powered by BetterDocs