sql >> Databáze >  >> RDS >> Sqlserver

Proč SQL Server automaticky ignoruje prázdné místo na konci?

SQL Server se řídí standardem ANSI/ISO pro porovnávání řetězců.

Podrobně to vysvětluje článek Jak SQL Server porovnává řetězce s koncovými prostory.

SQL Server se řídí specifikací ANSI/ISO SQL-92... o tom, jak porovnávat řetězce s mezerami. Standard ANSI vyžaduje vyplnění řetězců znaků používaných při porovnávání, aby se jejich délky před porovnáním shodovaly. Výplň přímo ovlivňuje sémantiku predikátů klauzule WHERE a HAVING a další srovnání řetězců Transact-SQL. Například Transact-SQL považuje řetězce 'abc' a 'abc' za ekvivalentní pro většinu operací porovnání.

Také, jak je vysvětleno v článku, pokud porovnáte s LIKE vy ne získat toto chování.



  1. Funkce SQL Row_Number() v klauzuli Where

  2. Vložit data z jedné tabulky do druhé v MySQL

  3. Jak získat údaje o prodeji za poslední 3 měsíce v MySQL

  4. Definování vztahu jedna ku jedné v SQL Server