PostgreSQLで改行のある列を取得する方法! SQL初心者の勉強

改行コードを含んだ列がある時に、改行コードを含む列だけを取得する方法を備忘録として残します。

改行コードについては以下でまとめています。

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, '通常', '改行なし');

作成したテーブル。

itemidnamememo
1改行コードテスト test改行テスト
2通常改行なし
item

SELECT文で取得

SELECT * FROM item WHERE name LIKE '%' || chr(10) || '%' or name LIKE '%' || chr(13) || '%' ;

■ 結果

itemidnamememo
1改行コードテスト
test
改行テスト

改行のある行のみ取得できました。

PostgreSQL, SQL

Posted by Nakamoto