4

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

例如: Name Like 'David' 得到所有名字 David 或 david 或 daVid 等。我的目标是只得到 David。我有兴趣从专家那里了解不同的方法。

4

4 回答 4

4

您需要使用排序规则。

SELECT * FROM myTable  
WHERE LastName COLLATE Latin1_General_CS_AS = 'smyTH' 
于 2012-04-13T11:45:01.847 回答
2

这是一个使用Darren Daviss 答案的示例

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)
于 2012-04-13T12:31:41.883 回答
1

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

于 2012-04-13T11:44:37.990 回答
1

LIKE 在 PostgreSQL中是区分大小写ILIKE的,但不区分大小写。因此,这取决于您使用的 DBMS。

于 2012-04-13T11:45:11.877 回答