I know very well how VFP normally compares strings, but I didn't know that this was different in Select statements. Thank you for clarifying this.
>It's not a bug but documented behavior. See
String comparison in VFP>
>>Some old code I maintain, behaves differently in VFP9SP2 than in earlier versions. I know that this code is not recommended, but I didn't write it...! Try the following:
>>Select * from yourtable where upper(alltrim(yourfield))='A'
>>Note that VFP9SP2 will also select all the records where yourfield is empty!!! This must be a bug?
>>
>>Update: Further investigation reveals that I get the same result in VFP8. This means that these two code segments behave differently
>>Select * from yourtable where upper(alltrim(yourfield))='A'
Use yourtable
>>Browse for upper(alltrim(yourfield))='A'
>>In all cases I have Set exact OFF and Set ansi OFF.