TSQL选择具有范围的国家字符

TSQL选择具有范围的国家字符,sql,tsql,Sql,Tsql,我在SQL Server 2016上使用默认设置,无法理解第4行是否没有捕捉到我的奇怪角色。它与[a-z]范围匹配,从未想过会是这样。是否有任何解决方案来解决这个范围?在下面的示例中,我希望显示一条记录,但第4行不允许这样做。带列表的第5行是唯一的解决方案吗??? 有趣的是,CHAR(13)的范围很广,可以很好地工作 DECLARE @a VARCHAR(10) = CHAR(13) +'Delta', @b NVARCHAR(20) = 'Â' + 'Hotel'; SELECT @a A

我在SQL Server 2016上使用默认设置,无法理解第4行是否没有捕捉到我的奇怪角色
。它与[a-z]范围匹配,从未想过会是这样。是否有任何解决方案来解决这个范围?在下面的示例中,我希望显示一条记录,但第4行不允许这样做。带列表的第5行是唯一的解决方案吗??? 有趣的是,CHAR(13)的范围很广,可以很好地工作

DECLARE @a VARCHAR(10) = CHAR(13) +'Delta',   @b NVARCHAR(20) = 'Â' + 'Hotel';
SELECT @a A, LEN(@a) LenA, @b B, LEN(@b) LenB  
       ,CASE WHEN @b < 'A' THEN 'LessA'  ELSE CASE WHEN @b > 'Z' THEN 'GreaterZ' ELSE  'Â Between' END END sw
WHERE 1=1
AND    @b NOT LIKE  '[A-Z]%'             --- Line 4:   <<< 'Â'   in the range [a-z] or [A-Z] , how I can only work with 26 English letter range ???
-- AND    @b NOT LIKE  '[ABCDEFHGW]%'    --- Line 5:   <<< is writing the list the only solution ?
-- AND    @b LIKE 'Â%' 
-- COLLATE Latin1_General_CS_AS
DECLARE@a VARCHAR(10)=CHAR(13)+“Delta”,@b NVARCHAR(20)=“Hotel”;
选择@a,LEN(@a)LenA,@b,LEN(@b)LenB
,在@b<'A'和'LessA'之间,在@b>'Z'和'GreaterZ'之间的情况下
其中1=1

而且@b不像“[A-Z]”——第4行:它仍然不能100%工作,需要小心。整理并不能解决问题。最可靠的使用
的方法,如“%[236ùùùùùùùùùùùùùùùùù÷ýýõñññññññññùùùùùùùùùùùùù24。整理并不能解决问题。最可靠的使用
的方法,如“%[ì236;ùùùùùùùùùùùùùùùù÷ýõõññññññùùùùùùùùùùùùùù24


查看2021年最新发布的dd后发现这一点非常完美:


检查2021年最新发布的dd

COLLATE Latin1\u General\u BIN
COLLATE Latin1\u General\u BIN