使用PATINDEX和区分大小写排序字符串中的我注意到这不是产生所希望的结果来搜索大写字母:范围通配符模式匹配行为区分大小写归类
-- returns 1
SELECT PATINDEX('%[A-Z]%'
, 'abCde' COLLATE SQL_Latin1_General_Cp1_CS_AS);
然而,指定每个字母,AZ,然后:
-- returns 3
SELECT PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%'
, 'abCde' COLLATE SQL_Latin1_General_Cp1_CS_AS);
我的理解在第一种情况下使用范围不正确?为什么这样的行为?
感谢这一点,我需要提取以大写字母开头的行:PATINDEX('[ABCDEFGHIJKLMNOPQRSTUVWXYZ]%',[NAME] COLLATE SQL_Latin1_General_Cp1_CS_AS)= 1 – 2011-05-13 03:23:51