今天我在 SQL Server 上遇到了一些有趣的行为(在 2005 年和 2012 年观察到),我希望有人能解释一下。
=
使用NVARCHAR 字段进行比较的查询忽略了字符串中的尾随空格(或在比较之前自动修剪值),但使用like
运算符的相同查询没有忽略空格。使用的排序规则是 2012 年的 Latin1_General_CI_AS。
考虑这个 SQL Fiddle:http ://sqlfiddle.com/#!6/72262/4
请注意,like
运算符不会返回尾随空格字符串的结果,但=
运算符会。为什么是这样?
加分项:我无法在 VARCHAR 字段上复制它,我原以为在两种数据类型中都会以相同的方式处理空格 - 这是真的吗?