Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché SQL Server ignora automaticamente lo spazio vuoto alla fine?

SQL Server segue lo standard ANSI/ISO per il confronto delle stringhe.

L'articolo Come SQL Server confronta le stringhe con gli spazi finali lo spiega in dettaglio.

SQL Server segue la specifica ANSI/ISO SQL-92... su come confrontare le stringhe con gli spazi. Lo standard ANSI richiede il riempimento per le stringhe di caratteri utilizzate nei confronti in modo che le loro lunghezze corrispondano prima di confrontarle. Il riempimento influisce direttamente sulla semantica dei predicati delle clausole WHERE e HAVING e su altri confronti di stringhe Transact-SQL. Ad esempio, Transact-SQL considera le stringhe 'abc' e 'abc ' equivalenti per la maggior parte delle operazioni di confronto.

Inoltre, come spiegato nell'articolo, se confronti con LIKE tu non ottenere questo comportamento.