2016-03-25 11 views
1

Ich habe eine varchar (max) -Spalte mit HTML vorhanden und ich muss ein einzelnes Zeichen ersetzen, wo es zwischen einem Zeilenumbruch ist - <br></br> zB: <br>8</br>. Das Problem ist, dass das Zeichen völlig zufällig ist, also brauche ich das Äquivalent eines Platzhalters von . Ich brauche es nur, wenn es ein einzelnes Zeichen ist, nicht wenn es mehrere Zeichen sind.SQL Wildcard Replace - einzelnes Zeichen zwischen <br> Tag?

Also, wenn seine <br>#</br> ich will es

Irgendwelche Ideen zu <br></br> ändern, wie dies zu erreichen? Funktion/Ansicht/Stored procedure jede Methode reicht aus.

Dank

+0

haben Sie versucht, regex? oder ersetzen? –

Antwort

0

Sie versuchen replace verwenden könnte. Kein Experte in SQL Server, aber es ist in der Regel Replace(texttosearch, paterntofind, newpattern)

Replace(Yourcolumn, '<br>.</br>', '<br></br>') 

Es ist unklar, ob es anderer Text, den Sie erhalten möchten oder nicht. Sie benötigen möglicherweise einige Erfassungsgruppen, falls vorhanden.

0

Ich werde diese STUFF und CHARINDEX

Charindex mit tun - Hilft Ihnen die Position der <br>

identifizieren

Stuff - Hilft Ihnen das Zeichen mit leeren String

SELECT Stuff(strings, Charindex('<br>', strings) + 4, 1, '') as Result 
FROM (VALUES ('<br>8</br>'), 
       ('<br>.</br>'), 
       ('<br>#</br>'), 
       ('<br>$</br>')) tc (strings) 

Ergebnis zu ersetzen:

Result 
------ 
<br></br> 
<br></br> 
<br></br> 
<br></br> 
+0

@SkipFeeney - Kann '

' in der Eingabe erscheinen? Wenn dies der Fall ist, löscht dies immer noch ein Zeichen und führt zu "
/br>". – HABO

+0

Wenn solche Daten vorhanden sind, dann behandeln wir sie über die CASE-Anweisung –