强制T-SQL查询在MS中区分大小写

时间:2010-10-04 21:03:48

标签: sql-server tsql case-sensitive

我有一个表来源于一个案例敏感的旧遗留系统,特别是状态列,其中's'='计划导入'和'S'='计划管理'。这个表最终进入了我可以查询的SQL Server 2000数据库。我的查询相对简单,只是计算...

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

这是将'S'的计数与's'计数分组。有没有办法强制查询是封顶敏感的?我可以访问SQL Server 2000和2005环境来运行它,但是在服务器上具有有限的管理功能(所以我无法设置服务器属性)...我想我可以将数据移动到我的本地并设置一些东西我的本地我可以完全访问服务器选项,但更喜欢tsql解决方案。

2 个答案:

答案 0 :(得分:27)

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进行分组。有点像。

答案 1 :(得分:1)

你能介绍一个trans_type_ascii列,其中包含trans_type和group的ascii值吗?或者您可以使用任何其他列(isUpperCase)来区分它们。