Benutzer mit den meisten Antworten
Sonderzeichen (Zeilenumbruch) in SQL Server Tabelle

Frage
-
Hallo SQL Server Freunde,
ich habe da mal eine Anfängerfrage:
In einer meiner Tabellen stehen Strings mit Sonderzeichen (ein Kästchen, ist wohl ein Zeichenumbruch). Nun möchte ich in einer View das Zeichen ersetzen durch einen HTML-Tag (<br>).
Dass ich die Funktion REPLACE brauche, weiß ich, aber wie spreche ich das Sonderzeichen, das Kästchen an? Ich habe es versucht, in dem ich das Kästchen-Zeichen direkt in der REPLACE-Funktion angegeben habe, aber das klappt nicht.
Benötige ich - wie in VB - chr() oder etwas vergleichbares und wo finde ich den Code für das Zeichen?
Gruß und ein schönes WE
Thomas
- Typ geändert Robert BreitenhoferModerator Freitag, 18. Mai 2012 09:44 Frage
Antworten
-
Hallo Thomas
tommy_schroeder wrote:
In einer meiner Tabellen stehen Strings mit Sonderzeichen (ein Kästchen,
ist wohl ein Zeichenumbruch). Nun möchte ich in einer View das Zeichen ersetzen durch einen HTML-Tag (<br>).SELECT REPLACE(DeinFeld, CHAR(13) + CHAR(10), '<br>') FROM DeineTabelle
Achtung: Zeilenumbruch ist nicht Zeilenumbruch. Es gibt mindestens 3 verschiedene Arten von Zeilenumbrüchen, welche Du wohl aus VB kennst: CR, LF und CRLF
Obiges Beispiel ersetzt nur die CRLF durch <br>. Falls Du auch einzelne LF (entspricht CHAR(10)) oder CR (entsprcht CHAR(13)) ersetzen willst, kannst Du das Statement schachteln:
SELECT REPLACE(REPLACE(REPLACE(DeinFeld, CHAR(13) + CHAR(10), '<br>'), CHAR(10), '<br>'), CHAR(13), '<br>') FROM DeineTabelle
Wichtig ist dabei, dass Du die Kombination CRLF zuerst ersetzt, sonst bekommst Du zweimal <br>.
Gruss
Henry- Als Antwort markiert Robert BreitenhoferModerator Freitag, 18. Mai 2012 09:44
Alle Antworten
-
Hallo Thomas,
also beim mir in SSMS mit der Grid-Darstellung wird für ein Zeilenumbruch kein Kästchen angeuzeigt; SSMS Grid filtert das schon selbst raus, das wird eher ein anderes Sonderzeichen sein.
Um das folgende zu testen, solltest Du die Ausgabe von Raster (Grid) in Text ändern, damit man es richtig sehen kann. Und ja, in T-SQL gibt es ein Äquivalent zu Chr(), nämlich Char():
DECLARE @str nvarchar(100); SET @str = N'Erste Zeile Zweite Zeile'; SELECT @str; SELECT REPLACE(@str, CHAR(13) + CHAR(10), '<br>');
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog Xing- Bearbeitet Olaf HelperMVP Freitag, 4. Mai 2012 05:53
-
Hallo Thomas
tommy_schroeder wrote:
In einer meiner Tabellen stehen Strings mit Sonderzeichen (ein Kästchen,
ist wohl ein Zeichenumbruch). Nun möchte ich in einer View das Zeichen ersetzen durch einen HTML-Tag (<br>).SELECT REPLACE(DeinFeld, CHAR(13) + CHAR(10), '<br>') FROM DeineTabelle
Achtung: Zeilenumbruch ist nicht Zeilenumbruch. Es gibt mindestens 3 verschiedene Arten von Zeilenumbrüchen, welche Du wohl aus VB kennst: CR, LF und CRLF
Obiges Beispiel ersetzt nur die CRLF durch <br>. Falls Du auch einzelne LF (entspricht CHAR(10)) oder CR (entsprcht CHAR(13)) ersetzen willst, kannst Du das Statement schachteln:
SELECT REPLACE(REPLACE(REPLACE(DeinFeld, CHAR(13) + CHAR(10), '<br>'), CHAR(10), '<br>'), CHAR(13), '<br>') FROM DeineTabelle
Wichtig ist dabei, dass Du die Kombination CRLF zuerst ersetzt, sonst bekommst Du zweimal <br>.
Gruss
Henry- Als Antwort markiert Robert BreitenhoferModerator Freitag, 18. Mai 2012 09:44