Microsoft SQL Server Like关键字

时间:2012-04-13 11:42:13

标签: sql tsql sql-server-2008-r2 collation

在Microsoft SQL Server中制作Like关键字的任何输入都会区分大小写。

例如:名称像'大卫'获得所有名称大卫或大卫或daVid等。 我的目标是只获得大卫。我有兴趣了解专家的不同方式。

4 个答案:

答案 0 :(得分:4)

您需要使用整理。

SELECT * FROM myTable  
WHERE LastName COLLATE Latin1_General_CS_AS = 'smyTH' 

答案 1 :(得分:2)

以下是使用Darren Davis回答的示例

declare @tmp table (LastName nvarchar(10))

insert @tmp
select ('Gorijavolu')

select  LastName As 'CorrectCase' from  @tmp WHERE SUBSTRING(LastName,1,4) COLLATE Latin1_General_CS_AS = 'Gori'
select  LastName AS 'WrongCase' from    @tmp WHERE SUBSTRING(LastName,1,4) COLLATE Latin1_General_CS_AS = 'gori'

给出:

CorrectCase
-----------
Gorijavolu
(1 row(s) affected)

WrongCase
----------

(0 row(s) affected)

答案 2 :(得分:1)

这取决于您使用的数据库。例如,如果您为表或数据库选择不区分大小写的排序规则,则MySQL会不区分大小写,否则会区分大小写。

答案 3 :(得分:1)

LIKE in PostgreSQL区分大小写,而ILIKE不区分大小写。因此,这与您使用的DBMS有所不同。