使用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