我有这个数据库:
abcDEF
ABCdef
abcdef
如果我写下: select * from MyTbl where A='ABCdef'
如何获取: ABCdef
以及如何获取:
abcDEF
ABCdef
abcdef
提前感谢。
忘记写了 - sqlCE。
我有这个数据库:
abcDEF
ABCdef
abcdef
如果我写下: select * from MyTbl where A='ABCdef'
如何获取: ABCdef
以及如何获取:
abcDEF
ABCdef
abcdef
提前感谢。
忘记写了 - sqlCE。
您可以通过使用COLLATE
关键字使查询区分大小写。
SELECT A
FROM MyTbl
WHERE A COLLATE Latin1_General_CS_AS = 'ABCdef'
SELECT TheColumn
FROM MyTable
WHERE TheColumn COLLATE Latin1_General_CS_AS = 'ABCdef' COLLATE Latin1_General_CS_AS
那么重音符号呢? Latin1_General_CS_AI
,Latin1_General_Bin
呢?
尝试在where
后面加上二进制关键字:
select * from MyTbl where binary A = 'ABCdef';
SQL默认情况下不区分大小写,因此如果进行简单的字符串比较,您将获得所有三个项目。为了使其区分大小写,您可以将字段的值和搜索值都转换为varbinary类型:
SELECT * FROM MyTbl WHERE CAST(A AS varbinary(20)) = CAST('ABCdef' as varbinary(20))
COLLATE
意味着索引将不会被使用。 - Martin Smith这都与排序规则有关。每个排序规则都有一个后缀(CI和CS,分别表示大小写不敏感和大小写敏感)。