3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SELECT文の実行結果からフッターのみ非表示にする[psql]

Posted at

はじめに

SELECTの実行結果からフッターのみを削除する方法(メモ)を記載しますが、
ついでに TableauなどのBIツールでデータを可視化する際に、
DBのカラム名をヘッダーとして使用し、出力したデータをそのまま利用できると便利なので、
併せて簡易なデータの整形方法を記載します。

使用したDB

  • PostgreSQL、Redshift 9.2系

データ整形

何も指定せずにSELECTすると下記のようなデータが出力されます。
※『』で囲まれた数値は後述する識別番号です。
select * from book;

  id   |   author   | ←『3』  title
-------+------------+--------------------- ←『2』
  1000 | 太宰治     | 人間失格
  2000 | 太宰治     | 走れメロス
  3000 | 太宰治     | 斜陽
  4000 | 芥川龍之介 | 羅生門
  5000 | 芥川龍之介 | 蜘蛛の糸
  6000 | 芥川龍之介 | 河童
  7000 | 夏目漱石   | 坊ちゃん
  8000 | 宮沢賢治   | 銀河鉄道の夜
  9000 | 宮沢賢治   | セロ弾きのコ"ーシュ
 10000 | 宮沢賢治   | 注文の多い料理店
(10 行) ←『1』

データとして取り込むには不要な要素が多いのでコマンドを利用してデータを整形します。

『1』フッター表示をOFF

DB=>\pset footer
デフォルトのフッタは off です。

※ ヘッダーもフッター必要ないときは「\t」を指定すれば消せます。

select * from book;

  id   |   author   |        title
-------+------------+---------------------
  1000 | 太宰治     | 人間失格
  2000 | 太宰治     | 走れメロス
  3000 | 太宰治     | 斜陽
  4000 | 芥川龍之介 | 羅生門
  5000 | 芥川龍之介 | 蜘蛛の糸
  6000 | 芥川龍之介 | 河童
  7000 | 夏目漱石   | 坊ちゃん
  8000 | 宮沢賢治   | 銀河鉄道の夜
  9000 | 宮沢賢治   | セロ弾きのコ"ーシュ
 10000 | 宮沢賢治   | 注文の多い料理店

『2』位置揃えをOFF

DB=>\a
出力フォーマットは unaligned です。

select * from book;

id|author|title
1000|太宰治|人間失格
2000|太宰治|走れメロス
3000|太宰治|斜陽
4000|芥川龍之介|羅生門
5000|芥川龍之介|蜘蛛の糸
6000|芥川龍之介|河童
7000|夏目漱石|坊ちゃん
8000|宮沢賢治|銀河鉄道の夜
9000|宮沢賢治|セロ弾きのコ"ーシュ
10000|宮沢賢治|注文の多い料理店

『3』(必要に応じて)区切り文字を変える(例:タブに変換)

-- ファイル出力に変更
DB=>\o /home/userA/test.txt
DB=>\pset fieldsep '\t'
フィールド区切り文字は "        " です。
DB=>select * from book;
DB=>\o

※ 区切り文字はデータに含まれない文字を指定しましょう。

cat /home/userA/test.txt

id      author  title
1000    太宰治  人間失格
2000    太宰治  走れメロス
3000    太宰治  斜陽
4000    芥川龍之介      羅生門
5000    芥川龍之介      蜘蛛の糸
6000    芥川龍之介      河童
7000    夏目漱石        坊ちゃん
8000    宮沢賢治        銀河鉄道の夜
9000    宮沢賢治        セロ弾きのコ"ーシュ
10000   宮沢賢治        注文の多い料理店

コマンドラインで実行するなら

下記のようにすることで同様の結果が得られます。

psql -U xx -h xx -p xx -d xx -A -F '	' --pset footer -c 'select * from book' > test.txt

※ ターミナルでタブを入力するには「Ctrl+V」を実行後、Tabキーを押すことで入力出来るかも。

おわりに

他にも便利なオプションが多く用意されていますので、
これらを知っていることで前処理にかける時間を減らすことが出来ますね。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?