質問者
中黒 '•' の置換

質問
-
nvarchar型の列に、下記のような中黒'•'が先頭についたデータがあり、半角中黒を取りたいのですが、
--
ItemName
•あああ
--下記等を試しても、中黒がついたまま取得されてしまいます。
--
SELECT REPLACE(ItemName,'•' COLLATE Cyrillic_General_BIN,'')
FROM テーブル名
--・ABBYY Flexicapture (OCRソフト)からエクスポートしたデータです。
・文字コードを調べてみたところ、キリル言語 (DOS) - cp866の可能性があるようなので、
Cyrillic_General_BINとしたのですがreplaceできず、ロケールは他も全て試してみたのですが結果は変わりませんでした。
他に方法がありましたらご教示いただけないでしょうか。
宜しくお願いいたします。- 編集済み giiino 2019年7月26日 14:00
すべての返信
-
下記等を試しても、半角中黒がついたまま取得されてしまいます。
相手が NVARCHAR 型なのですから、'•' ではなく、N'•' を REPLACE しないと駄目でしょう。
Cyrillic_General_BINとしたのですが
そもそも Cyrillic_General_BIN だと、'•' も 'あ' も扱えないです。NVARCHAR で揃えましょう。
nvarchar型の列に、下記のような半角中黒'•'が先頭についたデータがあり、
-- 0x00002022 が得られている? SELECT CONVERT(varchar, CAST(UNICODE(N'•') AS varbinary), 1) -- SELECT CONVERT(varchar, CAST(ItemName AS VARBINARY), 1) FROM [テーブル名]
U+2022 なら定義上は Ambiguous なので、必ずしも半角とは言えなかったりします。
U+00B7 'MIDDLE DOT'「·」Ambiguous U+0387 'GREEK ANO TELEIA'「·」Narrow U+2022 'BULLET'「•」Ambiguous ← 今回のはコレ? U+2219 'BULLET OPERATOR'「∙」Narrow U+22C5 'DOT OPERATOR'「⋅」Narrow U+30FB 'KATAKANA MIDDLE DOT'「・」Wide U+FF65 'HALFWIDTH KATAKANA MIDDLE DOT'「・」Halfwidth
- 回答の候補に設定 SurferOnWww 2019年7月26日 22:13
-
giiinoさん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
本件、魔界の仮面弁士さんより参考になる投稿が寄せられたようでなによりです。
[回答としてマーク]機能は設定された投稿が後から参照しやすくなりますので、
同じ問題でお困りの方のためにも参考になった投稿に設定いただけますと幸いです。お手数ですが、ご協力の程どうかよろしくお願いいたします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~