O SQL Server segue a especificação ANSI / ISO SQL-92 (Seção 8.2, Regras gerais nº 3) sobre como comparar seqüências de caracteres com espaços. O padrão ANSI requer preenchimento para as seqüências de caracteres usadas nas comparações para que seus comprimentos correspondam antes de compará-las. O preenchimento afeta diretamente a semântica dos predicados das cláusulas WHERE e HAVING e outras comparações de cadeias Transact-SQL. Por exemplo, o Transact-SQL considera as seqüências de caracteres 'abc' e 'abc' como equivalentes para a maioria das operações de comparação.
A única exceção a esta regra é o predicado LIKE. Quando o lado direito de uma expressão de predicado LIKE apresenta um valor com um espaço à direita, o SQL Server não preenche os dois valores no mesmo comprimento antes que a comparação ocorra. Como o objetivo do predicado LIKE, por definição, é facilitar as pesquisas de padrões em vez de simples testes de igualdade de cadeias, isso não viola a seção da especificação ANSI SQL-92 mencionada anteriormente.
Aqui está um exemplo bem conhecido de todos os casos mencionados acima:
\nnão tem significado no SQL Server. Não é interpretado como uma nova linha. Esta não é uma resposta para a pergunta de qualquer maneira.
Martin Smith
@MartinSmith, mas está escrito no MSDN "Se você precisar ter espaços à direita em sua string, considere anexar um caractere de espaço em branco no final, para que o SQL Server não apare a string".
Você pode simplesmente adicionar um espaço em branco à sua condição.
Espaços à direita em funções de seqüência de caracteres
fonte
\n
não tem significado no SQL Server. Não é interpretado como uma nova linha. Esta não é uma resposta para a pergunta de qualquer maneira.