1

次のようにPATINDEX関数を使用しようとしています。

select PATINDEX('%[A-Z].%', 'he.llo MA. asd ' collate Cyrillic_General_CS_AS)

私はそれが9を返すことを期待していますが、2を返します。また、最初のパラメーターで照合を指定し、キリル文字の代わりに Latin1_General_CS_AS を使用しようとしました-同じ結果です。

4

2 に答える 2

1

これは、この SO スレッドに基づく私のおかしな回避策です(Matt Akers の回答が役に立たなかった場合):

select PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ].%', 'he.llo MA. asd ' collate Latin1_General_CS_AS)
于 2014-04-15T16:36:18.203 に答える
1

少しずつ進むように BINARY 比較を強制してみてください。

この人のリンクは、問題の解決に役立ちました。 リンク

取得していた 2 を複製し、COLLATE Latin1_General_BIN を使用すると、予想される 9 が返されました。

SELECT PATINDEX('%[A-Z].%', 'he.llo MA. asd ' COLLATE Latin1_General_BIN )
于 2014-04-15T16:21:35.377 に答える