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

时间:2018-06-03 15:23:12

标签: sql sql-server tsql

我创建了一个表格如下: -

pytest

现在,我必须找到包含%的名称。

我应该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'

但是我得到了所有的行。我只想要包含%的名称。

3 个答案:

答案 0 :(得分:6)

您可以使用CHARINDEX

select *
from Customer
where charindex ('%', Name) <> 0

以上是 non-sargable ,但更容易理解恕我直言。

答案 1 :(得分:2)

您可以使用escape子句将中间%视为文字:

SELECT * FROM Customer WHERE Name LIKE '%\%%' ESCAPE '\';
-- Use escape character -----------------^
-- Define escape character -------------------^

答案 2 :(得分:1)

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

这将起作用

为什么首先存储%?