Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum ignoriert der SQL Server das Leerzeichen am Ende automatisch?

SQL Server folgt dem ANSI/ISO-Standard für Zeichenfolgenvergleiche.

Der Artikel How SQL Server Compares Strings with Trailing Spaces erklärt dies ausführlich.

SQL Server folgt der ANSI/ISO SQL-92-Spezifikation ... zum Vergleich von Zeichenfolgen mit Leerzeichen. Der ANSI-Standard erfordert Auffüllen für die in Vergleichen verwendeten Zeichenfolgen, damit ihre Längen übereinstimmen, bevor sie verglichen werden. Das Auffüllen wirkt sich direkt auf die Semantik von WHERE- und HAVING-Klauselprädikaten und anderen Transact-SQL-Zeichenfolgenvergleichen aus. Beispielsweise betrachtet Transact-SQL die Zeichenfolgen 'abc' und 'abc ' für die meisten Vergleichsoperationen als gleichwertig.

Auch, wie im Artikel erklärt, wenn Sie mit LIKE vergleichen du nicht bekomme dieses Verhalten.