複数のメッセージや項目を列挙する形でテーブルにデータを登録する際に、改行を明示してINSERT処理を行いたい場合があります。
目次
SQLで改行コードをINSERTするには?
CHAR関数を改行したい位置に入れ込むことで実現可能となります。CHAR関数とは、文字コードを示す数値を引数に指定することでASCII(JIS)に対応する文字へ変換を行うことが出来る関数になります。Excelで使用したことがある方も多いと思います。
改行文字について
改行文字は2種類あり、最終的に何をもって使用するのかはシステム特性によるので適宜選択してください。
- CHAR(10):ラインフィード[LF]
- CHAR(13):キャリッジリターン[CR]
なお、INSERT先がNVARCHARの場合はCHAR関数ではなくNCHAR関数を使用下さい。
INSERT文サンプル
"AAA"と"BBB"という文字列の間に改行コード(CRLF)を挿入する場合。
INSERT INTO TABLE1(COLUMN1) VALUES ('AAA' + CHAR(13) + CHAR(10) + 'BBB');
"AAA"と"BBB"という文字列の間に改行コード(CR)を挿入する場合。
INSERT INTO TABLE1(COLUMN1) VALUES ('AAA' + CHAR(13) + 'BBB');
"AAA"と"BBB"という文字列の間に改行コード(LF)を挿入する場合。
INSERT INTO TABLE1(COLUMN1) VALUES ('AAA' + CHAR(10) + 'BBB');
NVARCHAR項目に"AAA"と"BBB"という文字列の間に改行コード(CRLF)を挿入する場合。
INSERT INTO TABLE1(COLUMN1) VALUES (N'AAA' + NCHAR(13) + NCHAR(10) + N'BBB');
SQLの前段でINSERT対象の文字列をプログラムで組み立てる場合は文字列を連結する際に改行コードを付与してあげればCHAR関数を用いなくても可能です。
SELECT文サンプル
"AAA"と"BBB"という文字列の間に改行コード(CRLF)を挿入する場合。
SELECT 'AAA' + CHAR(13) + CHAR(10) + 'BBB' FROM TABLE1
"AAA"と"BBB"という文字列の間に改行コード(CR)を挿入する場合。
SELECT 'AAA' + CHAR(13) + 'BBB' FROM TABLE1
"AAA"と"BBB"という文字列の間に改行コード(LF)を挿入する場合。
SELECT 'AAA' + CHAR(10) + 'BBB' FROM TABLE1
UPDATE文サンプル
"AAA"と"BBB"という文字列の間に改行コード(CRLF)を挿入する場合。
UPDATE TABLE1 SET COLUMN1 = 'AAA' + CHAR(13) + CHAR(10) + 'BBB'
"AAA"と"BBB"という文字列の間に改行コード(CR)を挿入する場合。
UPDATE TABLE1 SET COLUMN1 = 'AAA' + CHAR(13) + 'BBB'
"AAA"と"BBB"という文字列の間に改行コード(LF)を挿入する場合。
UPDATE TABLE1 SET COLUMN1 = 'AAA' + CHAR(10) + 'BBB'
NVARCHAR項目に"AAA"と"BBB"という文字列の間に改行コード(CRLF)を挿入する場合。
UPDATE TABLE1 SET COLUMN1 = N'AAA' + NCHAR(13) + NCHAR(10) + N'BBB'