SELECT仅限大写的单词

时间:2013-08-08 15:31:57

标签: sql sql-server

我有一个名为Cities的列,此列的数据如下:

 City 1
 CITY 1         
 CITY 1 

我想只选择CITY(大写)

这不是在做这个工作:

SELECT * FROM Location
WHERE Cities LIKE 'CITY 1'

这给了我CITY 1包括City 1

的所有内容

7 个答案:

答案 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)

这样比较就行了。看下面的图片enter image description here