改行コードを含んだ列がある時に、改行コードを含む列だけを取得する方法を備忘録として残します。
改行コードについては以下でまとめています。
SQLで改行のある列を取得する方法
改行のある列はchar()関数を使用して取得します。かっこの中身はASCIIコード表を入れます。
参考 : ASCII制御文字 – Wikipedia
改行コードは以下になります。
- CR(キャリッジリターン)・・・CHAR(13)
- LF(ラインフィード)・・・CHAR(10)
ちなみにタブはCHR(9)です。
構文
SELECT * FROM テーブル名 WHERE 列名 LIKE ‘%’ || chr(10) || ‘%’ or 列名 LIKE ‘%’ || chr(13) || ‘%’ ;
※キャリッジリターンかラインフィードどちらか確定している場合はchr(10)かchr(13)どちらかのみでor以降を書く必要はないです。
実際に改行のある列を取得してみる
テスト環境で実際に取得してみましょう。
準備
— CREATE文 item テーブル
CREATE TABLE item (
ItemID numeric(8, 0) unique not null,
Name character varying (30),
memo character varying (20),
primary key(ItemID)
);
— itemテーブル用INSERT文
insert into item
values(0001, ‘改行コードテスト
test’, ‘改行テスト’),
(0002, ‘通常’, ‘改行なし’);
作成したテーブル。
itemid | name | memo |
---|---|---|
1 | 改行コードテスト test | 改行テスト |
2 | 通常 | 改行なし |
SELECT文で取得
SELECT * FROM item WHERE name LIKE ‘%’ || chr(10) || ‘%’ or name LIKE ‘%’ || chr(13) || ‘%’ ;
■ 結果
itemid | name | memo |
---|---|---|
1 | 改行コードテスト test | 改行テスト |
改行のある行のみ取得できました。