Categories: SQL ServerT-SQL

TSQL – Der bessere Replace

Ab und zu sieht man den Wald vor lauter Bäumen nicht. Dieses mal stand ich vor der Aufgabe aus einer Spalte bestimmte Werte zu ersetzen. Die Liste der zu ersetzenden Werte war doch etwas länger. Mit einem simplen replace komme ich nicht besonders weit, da sich ja nur ein Wert ersetzen läßt.  Grübel grübel.. Doch es ist ganz simpel.

Das Prinzip:

Wir weisen  einer Variablen einen per Replace bereinigten  Wert zu.  Anschliessend wird auf das Ergebnis wiederum ein weiterer Replace angewendet (mit einem anderen zu ersetzenden Wert) und dann wiederum der Variable zugewiesen.das machen wir solange bis alle zu erstzendenen Werte durchgekaut haben.  Das geht pfeilschnell.

Das ganze packen wir noch in eine Funktion und schon haben wir einen besseren Replace:

CREATE FUNCTION  dbo.BetterReplace (@str NVARCHAR(4000))
RETURNS nVARCHAR(4000) AS
BEGIN
SET @str = REPLACE (@str,‘>‘,‘ ‚)
SET @str = REPLACE (@str,‘;‘,‘ ‚)
SET @str = REPLACE (@str,’&‘,‘ ‚)
SET @str = REPLACE (@str,‘:‘,‘ ‚)
SET @str = REPLACE (@str,'<‚,‘ ‚)
SET @str = REPLACE (@str,’/‘,‘ ‚)
SET @str = REPLACE (@str,“,‘ ‚)
SET @str = REPLACE (@str,‘,‘,‘ ‚)
SET @str = REPLACE (@str,’*‘,‘ ‚)
SET @str = REPLACE (@str,’^‘,‘ ‚)
SET @str = REPLACE (@str,’ü‘,’ue‘)
SET @str = REPLACE (@str,’ä‘,’ae‘)
SET @str = REPLACE (@str,’ö‘,’oe‘)
SET @str = REPLACE (@str,'“‚,‘ ‚)

  RETURN @str
END

Zum Beispiel:

declare @str as varchar(100)
set @str='<Tel>+498677-98890′

select dbo.BetterReplace (@str)

Ergebnis:

Tel +49 8677-98890

Einfach und wirklungsvoll !

Fumus

Share
Published by
Fumus
Tags: T-SQL

Recent Posts

SQL Server 2019 – static data masking – Du Opfer!

In SQL Server 2016 wurde das sog. dynamic data masking eingeführt. Eine Möglichkeit Daten bei…

5 Jahren ago

MinRole – Oder wie alles etwas einfacher wird

Seit Sharepoint Server 2007 präsentiert sich die Installation immer auf die gleiche Weise. Gerade mal,…

8 Jahren ago

Schritt für Schritt: SQL 2016 – Dynamic Data Masking

Es weihnachtet! Gerade bekam ich von einer Kollegin Plätzchen angeboten mit der Größe eines Diskus…

8 Jahren ago

Schritt für Schritt: SQL Server 2016 – temporal tables

Nein, bitte nicht verwechseln: temporal tables haben nichts zu tun mit temporary tables table variables…

9 Jahren ago

SQL Server 2016 Schritt für Schritt–Installation und First Look

SQL Server 2016.. habe ich schon erwähnt, dass ich den ziemlich cool finde? Wollen wir…

9 Jahren ago

SQL Server 2016 – CTP2

Nach langer Zeit wieder mal eine Artikel von mir.. der mich besonders erfreut. SQL Server…

9 Jahren ago