我尝试使用PATINDEX这样的功能:
select PATINDEX('%[A-Z].%', 'he.llo MA. asd ' collate Cyrillic_General_CS_AS)
我希望它返回9但它返回2。 有人可以告诉我什么是错的吗?我也尝试在第一个参数中提供collate并使用Latin1_General_CS_AS而不是Cyrrilic - 结果相同。
答案 0 :(得分:1)
尝试强制进行BINARY比较,以便逐渐进行。
这个家伙链接有助于解决您的问题。 LINK
我复制了你得到的2,并且使用COLLATE Latin1_General_BIN它返回了预期的9。
SELECT PATINDEX('%[A-Z].%', 'he.llo MA. asd ' COLLATE Latin1_General_BIN )
答案 1 :(得分:1)
以下是我基于this SO thread的怪异解决方法(如果Matt Akers的回答没有帮助你):
select PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ].%', 'he.llo MA. asd ' collate Latin1_General_CS_AS)