Från dokumentationen för LIKE (Transact-SQL) :
Jag återskapade ditt problem med följande tabell:
DECLARE @t TABLE(x NCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE x LIKE N'%S';
Resultat:
(0 row(s) affected)
Men om du använder NVARCHAR istället uppstår inte det här problemet:
DECLARE @t TABLE(x NVARCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE x LIKE N'%S';
Resultat:
x
-----
nanaS
Den ursprungliga tabellen gav dock inte de önskade resultaten även om man konverterade till NVARCHAR i WHERE klausul:
DECLARE @t TABLE(x NCHAR(25));
INSERT @t SELECT N'nanaS';
SELECT x FROM @t WHERE CONVERT(NVARCHAR(25),x) LIKE N'%S';
Resultat:
(0 row(s) affected)
Så en möjlig lösning skulle vara att använda rätt datatyp i första hand (och även alltid prefixa Unicode-strängar N'properly' . Om du inte kan göra datatypen korrekt kan du använda RTRIM() lösningen postad av Aushin, men håll HLGEMs kommentarer i åtanke också.