在SQL Server中使用CONTAINS关键字进行区分大小写的搜索

时间:2018-07-16 14:27:14

标签: contains

我想从数据库中搜索单词,它必须区分大小写。我在SQL Server中添加了全文索引功能,并在表中实现了该功能。我想使用CONTAINS关键字进行区分大小写的搜索。可能吗?

SELECT * 
FROM ResultDatabase
WHERE CONTAINS(Data ,'letS')

谢谢

1 个答案:

答案 0 :(得分:0)

字符串比较是否区分大小写(以及与字符操作有关的其他行为)由数据库的排序规则定义。 有关详细信息,请参见docs

您将不得不使用区分大小写的排序规则来创建新数据库

CREATE DATABASE MyOptionsTest  
COLLATE French_CS_AS;  -- CS denotes a CaseSensitive Collation CI would denote a CaseInsensitive Collation
GO  

或将现有数据库更新为区分大小写的排序规则

USE master;  
GO  
ALTER DATABASE MyOptionsTest  
COLLATE French_CS_AS;  
GO  

来源:docs

编辑 如果需要,可以在同一个数据库上同时进行区分大小写和不区分大小写的搜索

  • 使用区分大小写的排序规则,对于不区分大小写的搜索,请使用UPPER。该 可能会失败,并带有一些特殊字符,例如,如果它们没有大写字母变体。

SELECT * FROM someTable where UPPER(somecolumn) = UPPER('searchterm')

  • 在查询中明确指定排序规则

SELECT * FROM someTable where somecolumn COLLATE French_CS_AS = 'SEARCHTERM'