В частности, Sql Server 2005 / T-Sql. У меня есть поле, состоящее в основном из двух символов, и все они должны быть в верхнем регистре, но есть некоторые устаревшие данные, которые предшествуют текущей БД / системе, и мне нужно выяснить, какие записи нарушают верхний регистр завет обсадной колонны.
Я думал, что это будет работать:
select * from tbl where ascii(field1) <> ascii(upper(field1))
И действительно, это вернуло мне несколько записей. С тех пор они были исправлены, и теперь этот запрос не возвращает данных. Но есть люди, которые говорят мне, что в БД все еще есть смешанные данные о случаях, и я только что нашел пример: «FS» и «Fs» сообщают об одном и том же значении ascii.
Почему этот подход некорректен? Что может быть лучше для этого, или как я могу исправить этот подход для правильной работы?