Fra dokumentationen til LIKE (Transact-SQL) :
Jeg gengav dit problem med følgende tabel:
DECLARE @t TABLE(x NCHAR(25));INSERT @t SELECT N'nanaS';SELECT x FROM @t WHERE x LIKE N'%S';
Resultat:
(0 række(r) påvirket)
Men hvis du bruger NVARCHAR
i stedet opstår dette problem ikke:
DECLARE @t TABLE(x NVARCHAR(25));INSERT @t SELECT N'nanaS';SELECT x FROM @t WHERE x LIKE N'%S';
Resultater:
x-----nanaS
Den originale tabel gav dog ikke de ønskede resultater, selvom der blev konverteret til 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 række(r) påvirket)
Så en mulig løsning ville være at bruge den rigtige datatype i første omgang (og også altid præfikset Unicode-strenge N'korrekt'
. Hvis du ikke kan gøre datatypen korrekt, kan du bruge RTRIM()
løsning indsendt af Aushin, men husk også HLGEMs kommentarer.