我想从数据库中搜索单词,它必须区分大小写。我在SQL Server中添加了全文索引功能,并在表中实现了该功能。我想使用CONTAINS
关键字进行区分大小写的搜索。可能吗?
SELECT *
FROM ResultDatabase
WHERE CONTAINS(Data ,'letS')
谢谢
答案 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'