2004年11月02日

SQLServerで文字列フィールドから指定バイト数取得する方法

仕事で上記の要件が必要となり、SQL関連のリファレンス本を調べたら何とSQLServerでは文字数を数える関数はあるがバイト数を数える関数が存在しないことを知った。OracleやAccess(Jet)にはあるのにSQLServerには無いんだと!仕方なくよく参考にするサイトを調べてみたが過去ログにもそのような関連記事は見つからなかった。みんな使わないのかなぁ・・・と思いつつ、例によってGoogleで調べてようやく見つかった。何とも見事に、スマートな方法で実現していたのでここに覚書という意味で(仕事中ではあるが(^^;)書いておく。

注:文字列フィールドを 「moji」=VARCHAR(30)とする。

1.バイト数を取得
 DATALENGTH(CONVERT(VARCHAR(30), moji))

2.左から2バイト取得(LEFT()関数もどき)
 CONVERT(VARCHAR(2), moji)

3.最後から4バイト取得(RIGHT()関数もどき)
 REVERSE(CONVERT(VARCHAR(4), REVERSE(moji)))


posted by なっちゃん at 15:15| 静岡 ☁| ソフトウェア | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。