2023年1月24日火曜日

SQLite3 SELECT結果の区切り文字を変更する(.separator)

概要

コマンドラインツールはデフォルトだとSELECTの結果は「|」で区切られて表示される。 これは 「.mode」 コマンドの「list」と同じ設定。

「.separator」コマンドは列を区切る文字と行を区切る文字を変更出来る。 SELECTの結果を「.mode」で用意されていないフォーマットで出力したい場合や 「.import」コマンドで取り込む際に利用する。

ヘルプの内容


sqlite> .help .separator
.separator COL ?ROW?     Change the column and row separators
                

実行例

環境
  • Windows 10 64bit
  • SQLite3 (3.40.1) Command-Line Shell
列の区切り文字を「:」に変更してみる

sqlite> select * from sample;
1|honda|honda@example.com
2|suzuki|suzuki@example.com

sqlite> .separator :
sqlite> select * from sample;
1:honda:honda@example.com
2:suzuki:suzuki@example.com
                
列の区切り文字を「\n(改行コード)」に、 行の区切り文字を「\n\n(改行二つ)」にしてみる

sqlite> select * from sample;
1|honda|honda@example.com
2|suzuki|suzuki@example.com

sqlite> .separator \n \n\n
sqlite> select * from sample;
1
honda
honda@example.com

2
suzuki
suzuki@example.com

sqlite>
                

これで独自のフォーマットのデータを出力したり これを応用してTSV(タブ区切り)ファイルを入出力したりすることができる。

もし「.mode」で準備されているモードがあればそちらを使ったほうがいい。

参考URL