Поведение подстановочного шаблона диапазона с сопоставлением с учетом регистра

Используя 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); 

Я неправильно понимаю использование диапазона в первом случае? Почему такое поведение?

7
задан Pero P. 15 February 2012 в 06:56
поделиться