我正在尝试像这样使用PATINDEX函数:
select PATINDEX('%[A-Z].%', 'he.llo MA. asd ' collate Cyrillic_General_CS_AS)
我预计它会返回 9,但它会返回 2。有人能告诉我有什么问题吗?我还尝试在第一个参数中提供 collate 并使用 Latin1_General_CS_AS 而不是 Cyrrilic - 结果相同。
我正在尝试像这样使用PATINDEX函数:
select PATINDEX('%[A-Z].%', 'he.llo MA. asd ' collate Cyrillic_General_CS_AS)
我预计它会返回 9,但它会返回 2。有人能告诉我有什么问题吗?我还尝试在第一个参数中提供 collate 并使用 Latin1_General_CS_AS 而不是 Cyrrilic - 结果相同。
尝试强制进行 BINARY 比较,以便一点一点地进行。
这个家伙链接有助于解决您的问题。 关联
我复制了你得到的 2,并使用 COLLATE Latin1_General_BIN 它返回了预期的 9。
SELECT PATINDEX('%[A-Z].%', 'he.llo MA. asd ' COLLATE Latin1_General_BIN )
这是我基于此 SO 线程的怪异解决方法(以防 Matt Akers 回答对您没有帮助):
select PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ].%', 'he.llo MA. asd ' collate Latin1_General_CS_AS)