SQL区分大小写的查询,介于

SQL区分大小写的查询,介于,sql,sql-server,Sql,Sql Server,在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 返回像“Ruth”和“Renee”这样的值 我希望第一位大写字母的名字被排除在外。在区分大小写的排序中,B

在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
返回像“Ruth”和“Renee”这样的值


我希望第一位大写字母的名字被排除在外。在区分大小写的排序中,BETWEEN如何工作?

您可以执行以下操作:

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

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

在所有三个操作数上都添加COLLATE。不幸的是,我确实尝试将COLLATE添加到所有三个操作数上,如果你避免使用老骗子,只写
FirstName>“r”和“s”
,会发生什么?不幸的是,没有继续>和