首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server where子句未返回包含混合字符的所有值

SQL Server where子句未返回包含混合字符的所有值
EN

Stack Overflow用户
提问于 2020-04-28 13:57:42
回答 2查看 69关注 0票数 0

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

但是,当我运行

代码语言:javascript
复制
select * 
from a 
where column = N' 中国-China55'

值不会返回。

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

然而,我有一个巨大的数据集,我正在处理许多不同的特殊字符和细微差别,所以我想知道是否可以做些什么来修复where子句,以拉回正确的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-28 14:35:48

代码语言:javascript
复制
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数据类型。

对我来说,这个查询很好用

票数 0
EN

Stack Overflow用户

发布于 2020-04-28 19:45:31

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

代码语言:javascript
复制
where column LIKE N'_中国-China55'

或者:

代码语言:javascript
复制
where stuff(column1, 1, 1, N'') = '中国-China55'

性能问题是它们不能使用索引。您可以添加一个计算列,删除初始字符并对其进行索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61473552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档