小编WT_*_*T_W的帖子

SQL Server 在相等比较中自动修剪 varchar 值但不喜欢比较

我今天在 SQL Server 上遇到了一些有趣的行为(在 2005 年和 2012 年观察到),我希望有人能解释一下。

使用=NVARCHAR 字段进行比较的查询会忽略字符串中的尾随空格(或在比较之前自动修剪值),但使用like运算符的同一查询不会忽略该空格。2012 年使用的排序规则是 Latin1_General_CI_AS。

考虑这个 SQL 小提琴:http ://sqlfiddle.com/#! 6/72262/4

请注意,like运算符不会返回尾随空格字符串的结果,但=运算符会返回。为什么是这样?

加分项:我无法在 VARCHAR 字段上复制它,我原以为在两种数据类型中都会以相同的方式处理空间 - 这是真的吗?

sql-server sql-server-2012

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

sql-server ×1

sql-server-2012 ×1