Как выполнить поиск с учетом регистра с помощью 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 образец соответствия Клауса.

Что я могу сделать, чтобы выполнить поиск с учетом регистра?

Ответы на вопрос(3)

Ваш ответ на вопрос