Jag hittade en skum sak och det var att om man tex skriver så här så får man en träff. Men variabel @a är inte detsamma som variabel @b. Är det en bug?
declare @a AS varchar(5)
declare @b AS varchar(5)
set @a = ' 1';
set @b = ' 1 ';
Select len(@a), len(@b)
where @a = @b
Längden på variabeln @b är också 2 tecken vilket är konstigt. Det måste innebära att SQL server trimmar efterföljande mellanslag. Ska det vara så?
Avslutande blanka ignoreras vid jämförelse (om man har ett karaktärssätt med attributet PAD). Så det är inte fel.
Len är ingen standardfunktion så man kan inte säga att SQL server gör fel när dom tar bort avslutande blanka i det fallet. I den motsvarande standardfunktionen, char_length, så är avslutande blanka signifikanta.