質問: 2バイト文字をasciiコードに変換 sql server初心者です。 sql serverで2バイト文字をasciiコードの値で返したいのですが、関数ascii()を使用すると、1バイト目のasciiコードの値しか返してくれません。 2バイト目の文字も返す方法をご教授ください。 言葉足らずでわかりにくいかと思いますが、よろしくお願い致します。
回答: ascii関数は、複数の文字を指定した場合でも、 先頭文字の1文字しか変換の対象としないため 1バイト目のasciiコードの値しか返らないのは正常の動作です。 2バイト目の文字も返す方法ですが、 見栄えは悪くなりますが以下の方法で取得することができます。 (参考程度に見てください(^^; きっと、もっと良い方法があると思います・・・。) select convert(varchar, ascii(substring(target, 1, 1))) + convert(varchar, ascii(substring(target, 2, 1) from target_table 対象文字を切取り、asciiコードへ変換し、文字列へconvert後に、 2文字目も同じように変換し連結します。 ascii関数は返値が数値であるため、convertして文字列へ変換しています。 結果 対象データ:06 →asciiコード変換→4854