使用 BETWEEN 进行区分大小写的 SQL 查询



在 SQLServer 2012 上,为什么查询:

SELECT 
   Firstname 
FROM 
   dbo.CWIndividualGivers 
WHERE 
   FirstName BETWEEN 'r' COLLATE SQL_Latin1_General_CP1_CS_AS AND 'rzzz' COLLATE SQL_Latin1_General_CP1_CS_AS

返回像"露丝"和"蕾妮"这样的值?

我希望首先排除带有

大写字母的名称。 BETWEEN 在区分大小写的排序规则中如何工作?

您可以执行以下操作:

Select LEFT(Firstname, 100)
FROM dbo.CWIndividualGivers
WHERE FirstName like 'r%' COLLATE SQL_Latin1_General_CP1_CS_AS

注意:100 只是一个数字,您可以将其替换为数据集中最长名称的长度。