Was ist die Null-Zeichen-literal in TSQL?
Frage ich mich, was das literal für eine Null Charakter (z.B. '\0') ist in TSQL.
Hinweis: nicht ein NULL-Feld Wert, aber das null-Zeichen (siehe link).
Ich habe eine Spalte mit einer Mischung von typisch und ein null-Zeichen. Ich versuche, ersetzen Sie die null-Zeichen mit einem anderen Wert. Ich hätte gedacht, dass das folgende funktionieren würde, aber es ist Streitereien:
select REPLACE(field_with_nullchar, char(0), ',') from FOO where BAR = 20
InformationsquelleAutor der Frage t3rse | 2010-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei unterschiedliche Verhaltensweisen in der Cade Roux Antwort: Ersatz erfolgreich ist (wenn SQL-Sortierung verwendet wird) und nicht erfolgreich (Windows-Sortierung verwendet wird). Der Grund liegt in der Art der Sortierung verwendet.
War dieses Verhalten eingereicht zu Microsoft fast 4 Jahren:
aber leider ist es noch nicht erfasst.
So, es scheint, die einzige Lösung ist das ändern der Sortierung in SQL-Sortierung (z.B.
SQL_Latin1_General_CP1_CI_AS
können auch verwendet werden).* entfernt habe ich meine Vorherige Antwort als unnötig
InformationsquelleAutor der Antwort Alex
Sieht aus wie der C-style-terminator ein terminator in SQL als auch:
Wie es aussieht ist auch abhängig von SORTIERUNG:
funktioniert wie erwartet, im Vergleich zu:
InformationsquelleAutor der Antwort Cade Roux
Einen
VARBINARY
Stimmen sollten funktionieren mit jeder SortierungInformationsquelleAutor der Antwort Alex K.
Ich lief den test unten auf meinem server (2008) und es war erfolgreich. Es kann zu tun haben mit einem ANSI-Einstellung. Ich werde versuchen, spiegeln einige Einstellungen hier und sehen, ob ich das reproduzieren kann, Ihr Problem.
InformationsquelleAutor der Antwort Tom H
Sind Sie sicher, dass Sie null-Zeichen? Wie hast du Sie bekommen?
Sieht es aus wie SQL Server behandelt Sie als string-Abschlusszeichen. Diese Abfrage:
Zurück
aaa
für mich (auf SQL Server 2008).Edit: Oben ist falsch - es ist nur die Ergebnistabelle, die behandelt Sie so. Zeigen Sie sich im text-Modus.
InformationsquelleAutor der Antwort Blorgbeard
Ich hatte das gleiche Problem und mit
nullif
es gelöst für mich.InformationsquelleAutor der Antwort Niederee