如何在SQL Server中查找列是否包含'%'

3
我已经创建了一张如下的表格:-
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 '%%%';

但我获取到了所有的行。我只想要包含%符号的Name。


LIKE '%[^0-9%]%' ESCAPE '' - jgetner
3个回答

6
你可以使用 CHARINDEX 函数:
select *
from Customer
where charindex ('%', Name) <> 0

当然,以上内容是非SARGable的,但在我看来更易于理解。

2
您可以使用escape子句将中间的%作为文字处理:
SELECT * FROM Customer WHERE Name LIKE '%\%%' ESCAPE '\';
-- Use escape character -----------------^
-- Define escape character -------------------^

1
SELECT * FROM Customer where Name LIKE '%[%]%'

这将有效。

为什么要首先存储%?


感谢PandePopo。 - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接