Задание запроса T-SQL для чувствительности к регистру MS

У меня есть таблица, которая исходит из старой унаследованной системы, которая была в случае senstive, в частности столбца состояния, где 's' = 'Schedule import' и 'S' = 'Schedule management'. Эта таблица в конечном итоге входит в базу данных SQL Server 2000, с которой я могу запросить запрос. Мой запрос относительно прост, просто для подсчета...

Select trans_type, count(1) from mytable group by trans_type

Это группирует подсчеты для "S" вместе с подсчетами "s". Есть ли способ заставить запрос чувствительным к кепке? У меня есть доступ к средам SQL Server 2000 и 2005 для его запуска, однако у меня есть ограниченные возможности администратора на сервере (поэтому я не могу установить атрибуты сервера)... Думаю, я мог бы переместить данные на свой локальный компьютер и настроить что-то на мой локальный, где у меня есть полный доступ к параметрам сервера, но предпочел бы решение tsql.

Ответы

Ответ 1

select trans_type collate SQL_Latin1_General_CP1_CS_AS, count(*)
from mytable
group by trans_type collate SQL_Latin1_General_CP1_CS_AS

Вы можете сделать это с помощью =, like и других операторов. Обратите внимание, что вы должны изменить список выбора, потому что вы больше не группируете trans_type, теперь вы группируете trans_type collate SQL_Latin1_General_CP1_CS_AS. Вид получения.

Ответ 2

Можете ли вы ввести столбец trans_type_ascii с значением ascii для trans_type и группы вместо этого? Или любой другой столбец, который вы можете использовать (isUpperCase), чтобы отличить их.