SQL Serverで改行コード
SQL Serverで改行コードを含むレコードを検索・更新・置換したい場合があります。改行コードを含むレコードを取得する場合はASCIIコードを変換すればSQL Serverで扱えます。
改行コード
- CR(キャリッジリターン)・・・CHAR(13)、NCHAR(13)
- LF(ラインフィード)・・・CHAR(10)、NCHAR(10)
改行コードは「CR」「LF」があります。ASCIIコードは「CR」が「CHAR(13)」、「LF」が「CHAR(10)」です。
例1.SQL Serverで改行コードを取得する
--SQL Serverで改行コードCRを取得する SELECT * FROM emp WHERE address LIKE '%' + CHAR(13) + '%';
--SQL Serverで改行コードCRLFを取得する SELECT * FROM emp WHERE address LIKE '%' + CHAR(13) + CHAR(10) + '%';
--SQL Serverで改行コードCRLFを取得する(unicode文字) SELECT * FROM emp WHERE address LIKE '%' + NCHAR(13) + NCHAR(10) + '%';
SQL Serverで改行コードを使用したレコードを取得するには、検索条件にCHAR(13)やCHAR(10)を指定し、ワイルドカード「%」を使って検索すると改行コードを使用したレコードが取得できます。
UNICODEに対応したnchar型・nvarchar型の場合はCHAR(13)やCHAR(10)ではなく、NCHAR(13)やNCHAR(10)を使用します。
例2.SQL Serverで改行コードを更新する
--SQL Serverで改行コードCRつきで登録する INSERT INTO emp (address) VALUES ('東京都' + CHAR(13) + '渋谷区');
--SQL Serverで改行コードCRLFつきで登録する INSERT INTO emp (address) VALUES ('東京都' + CHAR(13) + CHAR(10) + '渋谷区');
--SQL Serverで改行コードCRLFつきで登録する(unicode文字) INSERT INTO emp (address) VALUES ('東京都' + NCHAR(13) + NCHAR(10) + '渋谷区');
SQL Serverで改行コードつきのレコードを登録するには、CHAR(13)やCHAR(10)を指定するだけです。
例3.SQL Serverで改行コードを置換する
--SQL Serverで改行コードCRをスペースに置換する UPDATE emp SET address = REPLACE(address, CHAR(13), ' ');
--SQL Serverで改行コードCRLFをスペースに置換する UPDATE emp SET address = REPLACE(address, CHAR(13) + CHAR(10), ' ');
--SQL Serverで改行コードCRLFをスペースに置換する(unicode文字) UPDATE emp SET address = REPLACE(address, NCHAR(13) + NCHAR(10), ' ');
SQL Serverで改行コードつきのレコードを別の文字列に置換するには、CHAR(13)やCHAR(10)をREPLACEで置換します。
以上、SQL Serverで改行コードを含むレコードを取得・更新・置換する方法でした。
コメント