Program SQL Server jest zgodny ze specyfikacją ANSI / ISO SQL-92 (Rozdział 8.2, Ogólne zasady nr 3) w zakresie porównywania ciągów ze spacjami. Norma ANSI wymaga uzupełnienia ciągów znaków używanych w porównaniach, aby ich długości pasowały przed porównaniem. Wypełnienie wpływa bezpośrednio na semantykę predykatów klauzul WHERE i HAVING oraz innych porównań ciągów Transact-SQL. Na przykład Transact-SQL uważa, że ciągi „abc” i „abc” są równoważne dla większości operacji porównania.
Jedynym wyjątkiem od tej reguły jest predykat LIKE. Gdy prawa strona wyrażenia predykcyjnego LIKE zawiera wartość ze spacją końcową, SQL Server nie uzupełnia dwóch wartości do tej samej długości przed wystąpieniem porównania. Ponieważ predykat LIKE z definicji ma ułatwić wyszukiwanie wzorców, a nie proste testy równości ciągów, nie narusza to wspomnianej wcześniej sekcji specyfikacji ANSI SQL-92.
Oto dobrze znany przykład wszystkich wyżej wymienionych przypadków:
\nnie ma znaczenia w SQL Server. Nie jest interpretowany jako nowa linia. To i tak nie jest odpowiedź na zadane pytanie.
Martin Smith
@MartinSmith, ale jest napisane w MSDN „Jeśli musisz mieć końcowe spacje w swoim ciągu, powinieneś rozważyć dodanie znaku spacji na końcu, aby SQL Server nie przycinał łańcucha”.
Możesz po prostu dodać białą spację do swojego stanu.
Końcowe spacje w funkcjach łańcuchowych
źródło
\n
nie ma znaczenia w SQL Server. Nie jest interpretowany jako nowa linia. To i tak nie jest odpowiedź na zadane pytanie.