在Microsoft SQL Server中制作Like关键字的任何输入都会区分大小写。
例如:名称像'大卫'获得所有名称大卫或大卫或daVid等。 我的目标是只获得大卫。我有兴趣了解专家的不同方式。
答案 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有所不同。