sql - 如何在 SQL Server 中查找列是否包含“%”
问题描述
我创建了一个如下表:-
CREATE TABLE Customer(CustomerID integer PRIMARY KEY, Name text);
/* Added few records in this table */
INSERT INTO Customer VALUES(1,'Tom');
INSERT INTO Customer VALUES(2,'Lucy');
INSERT INTO Customer VALUES(3,'Jenny%123');
现在,我必须找到其中包含 % 的名称。
我应该得到'Jenny%123'
我使用的查询是
SELECT * FROM Customer where Name LIKE '%%%';
但我得到了所有的行。我只想要其中包含 % 的名称。
解决方案
您可以使用CHARINDEX
:
select *
from Customer
where charindex ('%', Name) <> 0
当然,上述内容是non-sargable,但更容易理解恕我直言。
推荐阅读
- swift - 您如何进行实时数据库查询来检查用户的时间戳是否在今天?
- laravel - 在 dockerized Laravel 应用程序中返回 404 错误的图像。存储在卷中的图像
- javascript - 图表未呈现
- xslt-2.0 - XSLT 的严格编译,但不验证应用程序上的输入 XML
- javascript - 如何使用 Joi 验证具有未知键的对象并检查值是否为标量类型?
- bash - 来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致“exec:\”/bin/bash\”
- reactjs - 简单的反应状态不会在第一次请求时改变
- javascript - pdfjs库的重新缩放问题
- drupal - 在我的 mac 终端上运行 blt vm 命令时,我遇到了 drupal VM 的问题
- node.js - 为什么即使在全局安装 express.js 之后,我仍然无法使用 express.js 运行文件