Ich habe eine Abfrage geschrieben
%Vor%durch falsches Tippen. Aber ich habe festgestellt, dass das Ergebnis genauso ist wie
%Vor%Es scheint, dass der leere Bereich am Ende von SQL Server automatisch ignoriert wird.
Kann mir jemand sagen warum?
FYI, die Spalte UserName
hat den Typ nvarchar(MAX)
.
SQL Server folgt dem ANSI / ISO-Standard für den Zeichenfolgenvergleich.
Der Artikel Wie SQL Server Strings mit nachgestellten Leerzeichen vergleicht erklärt dies im Detail.
SQL Server folgt der ANSI / ISO SQL-92-Spezifikation ... wie Zeichenketten mit Leerzeichen vergleichen Der ANSI-Standard erfordert ein Padding für die Zeichenfolgen, die in Vergleichen verwendet werden, damit ihre Längen übereinstimmen bevor Sie sie vergleichen. Das Padding beeinflusst direkt die Semantik von WHERE- und HAVING-Klauselprädikate und andere Transact-SQL-Zeichenfolgen Vergleiche. Zum Beispiel berücksichtigt Transact-SQL die Zeichenfolgen 'abc' und 'abc' ist für die meisten Vergleichsoperationen gleichwertig.
Wenn Sie mit LIKE
vergleichen, erhalten Sie, wie im Artikel erklärt, dieses Verhalten nicht .
Tags und Links sql-server sql-server-2012