sql - 当字符串包含下划线时,LIKE 运算符和 % 通配符
问题描述
我在 SQL Server 中有一个存储代码的表。根据命名法,一些以'DB_'开头,而另一些以'DBL_' 开头。我需要一种方法来过滤以'DB_'开头的那些,因为当我尝试这样做时,它会返回所有结果。
CREATE TABLE CODES(Id integer PRIMARY KEY, Name Varchar(20));
INSERT INTO CODES VALUES(1,'DBL_85_RC001');
INSERT INTO CODES VALUES(2,'DBL_85_RC002');
INSERT INTO CODES VALUES(3,'DBL_85_RC003');
INSERT INTO CODES VALUES(4,'DB_20_SE_RC010');
INSERT INTO CODES VALUES(5,'DB_20_SE_RC011');
SELECT * FROM CODES where Name like 'DB_%';
返回的结果:
1|DBL_85_RC001
2|DBL_85_RC002
3|DBL_85_RC003
4|DB_20_SE_RC010
5|DB_20_SE_RC011
预期结果:
4|DB_20_SE_RC010
5|DB_20_SE_RC011
解决方案
_
是表达式中单个字符的通配符LIKE
。因此两者'DB_'
和'DBL'
都是LIKE 'DB_'
。如果您需要文字下划线,则需要将其放在方括号 ( []
) 中:
SELECT *
FROM CODES
WHERE [Name] LIKE 'DB[_]%';
推荐阅读
- scala - 将 sparkSession 传递给 Scala 中的函数 - Spark 2.1
- javascript - 如何在javascript中将数组与json数据进行比较并在另一个数组中显示匹配的json结果
- macos - 当我在终端中调用 Emacs 错误“无法初始化颜色列表取消归档程序”时
- python - 没有日期名称的列的日期时间
- ios - Swift:以编程方式重新排序表行
- c# - 不支持 NTwain ICapSupportedSizes
- python - 向 pandas to_csv 函数添加路径
- c# - itextsharp 在不同时间签署多个数字签名
- azure-keyvault - 在通过 Azure PowerShell 导入证书期间使用标签时出错
- python - Python多线程问题文件操作