В этом простом примере показана проблема, с которой я столкнулся, но я не понимаю, почему ...
Я проверяю местоположение первого символа в нижнем или верхнем регистре.буква, одиночная черта или точка в строковом параметре переданы мне.
Похоже, что эти два сопоставления с образцом проверяют одну и ту же вещь, и все же запустите этот код самостоятельно, и он напечатает 0, а затем 3:
PRINT PATINDEX ( '%[a-z,A-Z,-,.]%', '16-82')
PRINT PATINDEX ( '%[-,a-z,A-Z,.]%', '16-82')
Я не понимаю, почему это работает только , если черточка - первая, которую мы проверяем.
Это ошибка?Или работает, как задумано, и я что-то упустил ... Я использую SQL Server 2016, но я не думаю, что это имеет значение.