Как выполнить поиск с учетом регистра с помощью LIKE?
m пытается найти записи, которые содержат строку из 6 или более буквенно-цифровых символов в верхнем регистре. Некоторые примеры: я
PENDING 3RDPARTY CODE27
используя следующее утверждение:
SELECT Details
FROM MyTable
WHERE Details LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
Это возвращает все записи, которые содержат любое слово из 6 или более букв, независимо от регистра.
мы добавилиCOLLATE
заявление:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
Это ничего не меняет. Он по-прежнему возвращает записи со словом, состоящим из 6 или более букв, независимо от регистра.
В качестве теста я попробовал:
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%pending%';
SELECT Details
FROM MyTable
WHERE Details COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
Оба они работали, возвращая записи, содержащие "в ожидании» а также "ОЖИДАНИЕ» соответственно. Таким образом, проблема, кажется,LIKE
Клауссопоставление с образцом.
Что я могу сделать, чтобы выполнить поиск с учетом регистра?