Betrachten Sie in SQL Server 2008 eine Tabelle namens Zone mit einer Spalte ZoneReference als Primärschlüssel. Das Ausführen der Abfrage SELECT '"' ZoneReference '"' AS QuotedZoneReference FROM Zone WHERE ZoneReference = 'WF11XU' gibt unerwartet „WF11XU“ mit einem nachgestellten Leerzeichen zurück.
Dies ergibt sich aus der Einhaltung der ANSI/ISO-SQL-Anweisungen durch SQL Server. 92-Spezifikation, wobei Zeichenfolgen für Vergleiche aufgefüllt und bei übereinstimmenden Längen als gleichwertig behandelt werden. Folglich gelten „abc“ und „abc“ als gleich.
Dieses Verhalten betrifft auch WHERE-Klausel-Prädikate, bei denen nachgestellte Leerzeichen ignoriert werden. Die Ausnahme bildet jedoch das Prädikat LIKE, das Werte ohne Auffüllung vergleicht, wenn auf der rechten Seite des Ausdrucks ein nachgestelltes Leerzeichen vorhanden ist.
Um nachgestellte Leerzeichen in Ihren Vergleichen zu unterdrücken, sollten Sie die Funktion TRIM() verwenden Ihre Abfrage- oder Datenmanipulationsanweisungen.
Das obige ist der detaillierte Inhalt vonWie behandelt die WHERE-Klausel von SQL Server nachfolgende Leerzeichen in Zeichenfolgenvergleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!