首页 > 解决方案 > SQL Server where 子句不返回所有混合字符的值

问题描述

a由值' 中国-China55'(以空格开头的精确值)组成。

但是,当我跑步时

select * 
from a 
where column = N' 中国-China55'

不返回值。

如果我用 替换空格和特殊键盘字符'',则返回该值。

但是,我有一个庞大的数据集,我正在使用许多不同的特殊字符和细微差别,所以我想知道是否可以做任何事情来修复 where 子句以拉回正确的值。

标签: sqlsql-serverwhere-clause

解决方案


如果性能不是问题,您可以使用LIKE或子字符串操作:

where column LIKE N'_中国-China55'

或者:

where stuff(column1, 1, 1, N'') = '中国-China55'

性能问题是这些不能使用索引。您可以添加一个计算列,删除初始字符并为其编制索引。


推荐阅读