(4.23)sql server区分大小写的检索
是的,SQL Server数据库可以区分大小写。区分大小写意味着SQL Server将为CASE,Case,CaSe等返回不同的结果集,并将所提到的字符串视为3个不同的字符串。区分大小写的数据库具有区分大小写的排序规则。在本博客中,我们将介绍区分大小写的搜索。这里给出了整理列表
让我们考虑一个例子
1
2
3
4
5
6
|
USE Adventureworks2014
GO
SELECT businessentityid,
firstname
FROM person.person
WHERE firstname LIKE 'terri%'
|
上面的查询搜索Person.Firstname列。上面的查询输出如下。
上面结果中的名字是Terri,而搜索值是terri 。SQL Server执行不区分大小写的搜索。现在让我们将Person.Firstname列的排序规则更改为区分大小写的排序规则。
1
2
3
4
5
|
-- might need to drop an index on firstname
-- column if it exits
ALTER TABLE Person.Person
ALTER COLUMN Firstname NVARCHAR(100)
COLLATE Latin1_General_CS_AS
|
现在让我们进行搜索并观察结果。
当SQL Server正在进行区分大小写的搜索时,查询返回零结果。让我们将搜索值的大小写更改为Person.Firstname列中值的大小并进行搜索
SQL服务器执行区分大小写的搜索并找到2个匹配的行。
现在让我们对区分大小写的列执行不区分大小写的搜索,而不更改列排序规则
COLLATE一词将Person.Firstname列的排序规则设置为不区分大小写,因此SQL Server执行不区分大小写的搜索,返回2行。