sql - SQL Server where 子句不返回所有混合字符的值
问题描述
表a
由值' 中国-China55'
(以空格开头的精确值)组成。
但是,当我跑步时
select *
from a
where column = N' 中国-China55'
不返回值。
如果我用 替换空格和特殊键盘字符''
,则返回该值。
但是,我有一个庞大的数据集,我正在使用许多不同的特殊字符和细微差别,所以我想知道是否可以做任何事情来修复 where 子句以拉回正确的值。
解决方案
如果性能不是问题,您可以使用LIKE
或子字符串操作:
where column LIKE N'_中国-China55'
或者:
where stuff(column1, 1, 1, N'') = '中国-China55'
性能问题是这些不能使用索引。您可以添加一个计算列,删除初始字符并为其编制索引。
推荐阅读
- python-3.x - 使用 Tkinter 去除图像周围的空白
- c - C 指针:如何生成以下输出?
- delphi - 如何使用 TIdFTP 进行 sFTP
- c++ - 从文件读取数据到向量数组(仅特定行!)
- node.js - 如何在开始下一个功能之前等待功能完成?
- c# - 一对一 HasRequired 配置不起作用
- spring-boot - 来自 manifest.yml 的 PCF 任务/调度程序作业内存分配
- visual-studio-code - 如何使用 onDidChangeSelection 事件在 vscode 工作区上单击记录文件数据
- python - Keras - Conv2D 期望 (1,1,1) 并得到 (258, 540, 3)
- vue.js - 如何在 vuetify 中删除 v-btn 背景?