我有一个名为Cities
的列,此列的数据如下:
City 1
CITY 1
CITY 1
我想只选择CITY
(大写)
这不是在做这个工作:
SELECT * FROM Location
WHERE Cities LIKE 'CITY 1'
这给了我CITY 1
包括City 1
答案 0 :(得分:9)
默认情况下,SQL Server将使用不区分大小写的排序规则。
SELECT *
FROM Location
WHERE Cities LIKE 'CITY 1'
COLLATE Latin1_General_CS_AI
使用区分大小写的排序规则将比较运算符标记为应用区分大小写的过滤器
答案 1 :(得分:1)
我假设您的SQL处于非区分大小写的排序规则,在这种情况下,搜索“C”和“c”将返回相同的结果。您需要通过整理查询来执行区分大小写的搜索:
SELECT * FROM Location WHERE Cities LIKE 'CITY 1' COLLATE <Insert case sensitive collation here>
e.g。
SELECT * FROM Location WHERE Cities LIKE 'CITY 1' COLLATE Latin1_General_CS_AI
答案 2 :(得分:1)
您可以使用BINARY运算符来强制区分大小写。
http://dev.mysql.com/doc/refman/5.0/en/charset-binary-op.html
SELECT * FROM Location WHERE BINARY Cities = 'CITY 1';
答案 3 :(得分:0)
解决方案:
Select * From Location Where Cities=BINARY UPPER(Cities);
答案 4 :(得分:0)
尝试:
SELECT *
FROM Location
WHERE Cities COLLATE Latin1_General_CS_AS = 'CITY 1'
答案 5 :(得分:0)
尝试此查询。
SELECT *
FROM Location
WHERE Cities LIKE 'CITY 1'
COLLATE Latin1_General_CS_AS;
整理使查询区分大小写的“CS”和重音敏感的“AS”。 Latin1指定英语和许多其他语言。
答案 6 :(得分:-1)