Образцы данных имеют только пробелы и строчные буквы в начале. Если это верно для реальных данных, то просто:
UPPER(REPLACE(YourColumn, ' ', ''))
Для более конкретного ответа я бы вежливо попросил вас расширить вашу спецификацию, в противном случае мне пришлось бы кодировать все другие возможности (например, значения менее трех символов), не зная, переусердствовал ли я в своем решении обрабатывать данные, которые на самом деле не возникали бы:)
Как всегда, после того, как вы исправили данные, установите ограничение базы данных, чтобы убедиться, что неверные данные не повторяются, например.
ALTER TABLE YourTable ADD
CONSTRAINT YourColumn__char_pos_1_uppercase_letter
CHECK (ASCII(SUBSTRING(YourColumn, 1, 1)) BETWEEN ASCII('A') AND ASCII('Z'));
ALTER TABLE YourTable ADD
CONSTRAINT YourColumn__char_pos_2_uppercase_letter
CHECK (ASCII(SUBSTRING(YourColumn, 2, 1)) BETWEEN ASCII('A') AND ASCII('Z'));
@ huo73: у вас не работает на SQL Server 2008: я получаю «TRr1534» вместо «TR1534».