表a由值' 中国-China55' (开头带空格的精确值)组成。
但是,当我运行
select *
from a
where column = N' 中国-China55'值不会返回。
如果我将空格和特殊键盘字符替换为'',则返回值。
然而,我有一个巨大的数据集,我正在处理许多不同的特殊字符和细微差别,所以我想知道是否可以做些什么来修复where子句,以拉回正确的值。
发布于 2020-04-28 14:35:48
DECLARE @A Table(ID INt identity (1,1), C_Name NVARCHAR(MAX))
Insert into @A values (N' 中国-China55')
select *
from @a
where C_Name= N' 中国-China55'检查该列是否属于Nvarchar数据类型。
对我来说,这个查询很好用
发布于 2020-04-28 19:45:31
如果性能不是问题,您可以使用LIKE或子字符串操作:
where column LIKE N'_中国-China55'或者:
where stuff(column1, 1, 1, N'') = '中国-China55'性能问题是它们不能使用索引。您可以添加一个计算列,删除初始字符并对其进行索引。
https://stackoverflow.com/questions/61473552
复制相似问题