Как найти, если столбец содержит «%» в SQL Server - PullRequest
0 голосов
/ 03 июня 2018

У меня есть созданная таблица следующим образом: -

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 '%%%';

Но я получаю все строки.Я просто хочу имя, которое содержит%.

Ответы [ 3 ]

0 голосов
/ 03 июня 2018

Вы можете использовать предложение escape для обработки среднего % как литерала:

SELECT * FROM Customer WHERE Name LIKE '%\%%' ESCAPE '\';
-- Use escape character -----------------^
-- Define escape character -------------------^
0 голосов
/ 03 июня 2018

Вы можете использовать CHARINDEX:

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

Выше, конечно, не sargable , но имхо легче понять.

0 голосов
/ 03 июня 2018
SELECT * FROM Customer where Name LIKE '%[%]%'

это будет работать

зачем хранить% в первую очередь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...