Используя PATINDEX и сортировку с учетом регистра для поиска букв верхнего регистра в строке, я заметил, что это не дало желаемого результата:
-- returns 1
SELECT PATINDEX('%[A-Z]%'
, 'abCde' COLLATE SQL_Latin1_General_Cp1_CS_AS);
однако, указав каждая буква AZ означает:
-- returns 3
SELECT PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%'
, 'abCde' COLLATE SQL_Latin1_General_Cp1_CS_AS);
Я неправильно понимаю использование диапазона в первом случае? Почему такое поведение?