在 Microsoft SQL Server 中制作 Like 关键字的任何输入都区分大小写。
例如: Name Like 'David' 得到所有名字 David 或 david 或 daVid 等。我的目标是只得到 David。我有兴趣从专家那里了解不同的方法。
在 Microsoft SQL Server 中制作 Like 关键字的任何输入都区分大小写。
例如: Name Like 'David' 得到所有名字 David 或 david 或 daVid 等。我的目标是只得到 David。我有兴趣从专家那里了解不同的方法。
您需要使用排序规则。
SELECT * FROM myTable
WHERE LastName COLLATE Latin1_General_CS_AS = 'smyTH'
这是一个使用Darren Davis
s 答案的示例
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)
这取决于您使用的数据库。例如,如果您为表或数据库选择不区分大小写的排序规则,则 MySQL 不区分大小写,否则不区分大小写。
LIKE
在 PostgreSQL中是区分大小写ILIKE
的,但不区分大小写。因此,这取决于您使用的 DBMS。