Transact-SQLで日本語を(2バイト文字)を含むデータの扱い

公開日: : 最終更新日:2013/11/26 SQL Server , , ,

Transact-SQLで日本語を(2バイト文字)を含むデータをそのままSUBSTRING()すると、
ずれて取得されるようです。
これで半日潰しました。

strTmp2に内容が予想よりずれて取得されます。

ずれないように取得するには以下のようにCAST()してから取得します。

また、日本語(2バイト文字)を含むデータ以降はすべてCAST()して
取得する必要があります。

文字数ではなくバイト数で取得する必要があるようです。

スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • 13 follow us in feedly

関連記事

MERGEでINSERTとUPDATEを1行で実行する

MERGE文を使うと行の存在有無を気にせずに1行のSQLでOK あるテ

記事を読む

再帰SQLで歯抜けの日付データを取得する

再帰SQLを使って歯抜けの日付データを取得 処理が自動実行(バッチ処理)で実行された日付を管理して

記事を読む

列は既にデフォルトにバインドされています。

テーブルのカラムの属性変更でデフォルト値を変更する テーブルのカラムの属性変更でデフォルト値を変更

記事を読む

複数のストアドプロシージャ (stored procedure) でローカルテンポラリテーブルを共有する

ローカルテンポラリテーブルを共有する 先日来より悩んでいたSQLServerでの SQL

記事を読む

DATENAME関数を使って日付を取得する。

DATENAME関数を使って日付取得 SQLServerでDATENAME関数を使って日付を取得し

記事を読む

SQL Server-登録されているストアドプロシジャーの一覧を取得する

データベースに登録されているストアドプロシジャーの 一覧を取得します。

記事を読む

SQLServer

SQLServerでトリガーを扱ってみる

INSERT、UPADTE、DELETEトリガーを扱ってみる SQLServerにはテーブルに対し

記事を読む

指定した列名がどのテーブルで使用されているか検索するSQL

指定した列名を利用しているテーブルを検索 SQLServerで指定した列名がどのテーブルで使用され

記事を読む

SQLServer上にあるテーブルの更新日時を取得する。

テーブルの更新日時を取得 SQLServer上にあるストアドプロシージャーの更新日時を取得するで

記事を読む

SQLServer

SQLServerで「WITH ROLLUP」を使って小計、総合計を出力する

「WITH ROLLUP」を使って小計、総合計を出力 SQLServerでは「WITH ROLLU

記事を読む

SQLServer
GROUP BYとHAVINGを使ってデータの重複を探しだすSQL

GROUP BYとHAVINGで重複を探す SQLでGROUP

SQLServerのテーブルロック状態を取得するSQL

SQLServerのデッドロックを調査している中で ロックの状態を調

SQLで月曜日始まりのカレンダー作成

カレンダー作成 SQLServerで月曜日始まりの1週間分のカレンダ

SQLServer
テーブルに設定されているインデックスをSQLで検索する

テーブルに設定されているインデックスをSQLで検索 SQLSer

SQLServerでsp_renameを使ってテーブルの列名を変更する

SQLServerで列名を変更するには sp_renameを使って列

→もっと見る



PAGE TOP ↑