您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL WHERE子句匹配带有尾随空格的值

SQL WHERE子句匹配带有尾随空格的值

这是预期的结果:在sql Server中,=操作员在进行比较时会忽略尾随空格。

sql Server遵循有关如何将字符串与空格进行比较的ANSI / ISO sql-92规范(第8.2节,通用规则#3)。ANSI标准要求对比较中使用的字符串进行填充,以便它们的长度在比较之前匹配。填充直接影响WHERE和HAVING子句谓词的语义以及其他Transact- sql字符串比较。例如,Transact-sql认为字符串“ abc”和“ abc”在大多数比较操作中是等效的。

该规则的唯一例外是LIKE谓词。当LIKE谓词表达式的右侧具有带尾随空格的值时,在进行比较之前,sql Server不会将两个值填充为相同的长度。因为按照定义,LIKE谓词的目的是为了促进模式搜索,而不是简单的字符串相等性测试,所以这不违反前面提到的ANSI sql-92规范的部分。

资源

SQLServer 2022/1/1 18:19:56 有277人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶