Ich habe ein Problem mit einem Sonderzeichen, das in eine Tabelle von SQL Server 2008 R2 eingefügt wurde. Der Punkt ist, dass, wenn ich versuche, eine Zeichenfolge mit dem Zeichen º (zB 3 ELBOW 90º LANGES RADIUS) in die Tabelle einzufügen, dies wie folgt erscheint: 3 ELBOW 90 LONG RADIUS, und wenn ich versuche, alle auszuwählen Zeilen, die das Zeichen enthalten das Ergebnis ist null.
Ich habe versucht, die Auswahl mit ASCII zu treffen, indem ich folgendes mache: Wählen Sie * aus dem Artikelcode mit der Bezeichnung '%' + char (63) + '%'
und machen Sie dies zu wissen, dass das ASCII dieses Symbols 63:
istWählen Sie ASCII (' ')
Aber das funktioniert nicht. Was muss ich tun, um alle Zeilen mit diesem Zeichen auszuwählen, und was soll ich tun, damit SQL das Zeichen º?
erkennt?Danke
Das Gradsymbol
%Vor% ist kein ASCII-Zeichen und erfordert im Allgemeinen eine NVARCHAR-Spalte und ein N''
-Zeichenfolgenliteral. (außer Codepages usw., die das Symbol unterstützen)
63 ist der Code des Fragezeichens , das das Ersatzzeichen für das umgekehrte Fragezeichen in ASCII darstellt:
%Vor%Dabei steht 65533 für das Unicode-Ersatzzeichen , das zum Anzeigen von Zeichen verwendet wird, die nicht angezeigt werden können konvertiert oder angezeigt.
wenn ich das ausführe:
%Vor%Ich bekomme 186 als ASCII-Code-Wert, also versuchen Sie:
%Vor%um alle ASCII-Codes zu sehen, führe dies aus:
%Vor%BEARBEITEN op gibt in einem Kommentar an, dass sie nvarchar-Spalten verwenden.
fälschen über ascii, verwenden Sie NCHAR (Transact-SQL) , um ein Gradsymbol auszugeben:
%Vor%und verwenden Sie UNICODE (Transact-SQL) , um den Wert zu erhalten:
%Vor%gibt zurück:
%Vor%Die Funktion NCHAR (65533) gibt das von Ihnen gesuchte Zeichen zurück.
Zusätzlich zur Sicherstellung, dass es ein NVARCHAR ist, würde ich etwas wie dieses verwenden
Wählen Sie (N' ')
Wie können Sonderzeichen in SQL Server 2008 angezeigt werden?
Tags und Links sql-server ascii