Da documentação para LIKE (Transact-SQL) :
Reproduzi seu problema com a seguinte tabela:
DECLARE @t TABLE(x NCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE x LIKE N'%S';
Resultado:
(0 row(s) affected)
No entanto, se você usar
NVARCHAR
em vez disso, esse problema não ocorre:DECLARE @t TABLE(x NVARCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE x LIKE N'%S';
Resultados:
x
-----
nanaS
No entanto, a tabela original não produziu os resultados desejados, mesmo convertendo para
NVARCHAR
no WHERE
cláusula:DECLARE @t TABLE(x NCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE CONVERT(NVARCHAR(25),x) LIKE N'%S';
Resultado:
(0 row(s) affected)
Portanto, uma possível solução alternativa seria usar o tipo de dados correto em primeiro lugar (e também sempre prefixar as strings Unicode
N'properly'
. Se você não conseguir corrigir o tipo de dados, você pode usar o RTRIM()
solução postada por Auchin, mas lembre-se também dos comentários do HLGEM.