- PR -

charindexの不具合?(MSSQL)

1
投稿者投稿内容
くらっち
会議室デビュー日: 2006/01/05
投稿数: 4
投稿日時: 2006-03-08 15:40
倉田と申します

select charindex('d','abc')
select charindex('゙','abc')
の結果はどちらも0になるはずですが
二つ目は1になります。
何故でしょう?

分かりにくいですが、二つ目は半角カタカナの濁音です
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2006-03-08 16:39
引用:
結果はどちらも0になるはずですが二つ目は1になります。何故でしょう?


明確、的確、正確な理由を説明できるほど私も事情を把握していないのですが、照合順序によって一部の記号類が同一視されたり、無いものとして扱われたりするようです。

とりあえず、バイナリ照合を行うと回避できます。

コード:
select charindex('゙' collate Japanese_BIN, 'abc')



どうしても CI が必要な場合はどうしたらいいんでしょうね?
くらっち
会議室デビュー日: 2006/01/05
投稿数: 4
投稿日時: 2006-03-08 23:28
今回はバイナリ照合で十分目的を果たすことができるので助かりました。
関数内でも照合順序を指定できたのですね。create tableでしか設定したこと無かったので目から鱗でした。
ありがとうございました。

引用:

どうしても CI が必要な場合はどうしたらいいんでしょうね?


キレイに解決できそうにはありませんね〜。
自作関数をかませるくらいしか思いつきません。
1

スキルアップ/キャリアアップ(JOB@IT)