T-SQL: 文字列に改行を挿入する

T-SQL - 文字列に改行を挿入するには?

プロシージャの実行結果として得られるエラーメッセージ等の文字列に、改行を挿入したい時があるかもしれません。

今回は、文字列に改行などの制御文字を挿入する方法です。


CHAR 関数で制御文字を挿入する

CHAR は整数を引数として受け取り、対応する ASCII 文字を返してくれる組み込み関数です。

普通のアルファベットや数字にも変換できますが、主に改行などの制御文字を挿入するのに良く使われます。


よく使われる制御文字は次の 3 つです。

  • CHAR(9) - タブ
  • CHAR(10) - ラインフィード (LF)
  • CHAR(13) - キャリッジリターン (CR)

改行を挿入したいときには、その文字列を表示するエディタやビューアー等に応じて、ラインフィード (LF) かキャリッジリターン (CR)、もしくは キャリッジリターン (CR) + ラインフィード (LF) を使います。

Windows 系はキャリッジリターン (CR) + ラインフィード (LF)、Unix 系はラインフィード (LF) かと思いますが、SQL Server Management Studio で結果をテキストで表示した場合は、どれを使っても改行が挿入されます。


例えば、test1 と test2 という文字の間にタブ、ラインフィード、キャリッジリターンの制御文字を入れて、結果をテキストで表示するとこのようになります。

SELECT	'test1' + CHAR(9) + 'test2' AS 'TAB';
SELECT	'test1' + CHAR(10) + 'test2' AS 'LF';
SELECT	'test1' + CHAR(13) + 'test2' AS 'CR';
SELECT	'test1' + CHAR(13) + CHAR(10) + 'test2' AS 'CR+LF';

[ 実行結果 ]
T-SQL - 文字列に改行を挿入する 1


TAB にはタブが、LF, CR, CR+LF には改行が挿入されていますね。


ちなみに、SQL Server Management Studio のテキストの結果を Windows のノートパッドにコピーして貼り付けると次のようになります。

T-SQL - 文字列に改行を挿入する 2

CR+LF のみが改行されていて、LF や CR だけでは改行されていません。


文字列に入ってしまった改行コードを探して削除したいときはこちらをご覧ください!

SQL で改行コードを削除する

© 2010-2024 SQL Server 入門