Как выполнить поиск с учетом регистра с помощью LIKE?
Я пытаюсь найти записи, которые содержат строку из 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%';
Оба они сработали, возвращая записи, содержащие «pending» и «PENDING» соответственно. Таким образом, проблема, кажется,LIKE
образец соответствия Клауса.
Что я могу сделать, чтобы выполнить поиск с учетом регистра?