SQLiteには、クエリ結果をコンマ区切りのリストとして出力できるようにするいくつかのモードと設定があります。
たとえば、.separator
を使用できます 区切り文字としてコンマを指定するdotコマンド。または、「quote」モードを使用して、出力を文字列リテラルとしてフォーマットすることもできます。
ただし、この記事では、csv
を使用します。 modeは、結果をコンマ区切りのリストとしてフォーマットし、文字列を二重引用符で囲みます。内部の二重引用符は二重引用符で囲まれています。
例
この例では、csv
に切り替えます モードにして、データベースからデータを選択します。
.mode csv
SELECT * FROM Products;
結果:
1,"Widget Holder",139.5 2,"Widget Opener",89.7 3,"Bob's ""Best"" Widget",374.2 4,"Blue Widget",63.0
内部の二重引用符は二重引用符で囲まれていますが、内部の単一引用符はそうではありませんでした。
SQLiteのデフォルトモード(パイプで区切られたリスト)と比較してこれを確認したい場合は、ここではそのモードを使用しています。
.mode list
SELECT * FROM Products;
結果:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Bob's "Best" Widget|374.2 4|Blue Widget|63.0
列ヘッダーの追加
.headers on
を使用して、列ヘッダー(列名)を追加することもできます。 。
.headers on
.mode csv
SELECT * FROM Products;
結果:
ProductId,ProductName,Price 1,"Widget Holder",139.5 2,"Widget Opener",89.7 3,"Bob's ""Best"" Widget",374.2 4,"Blue Widget",63.0
ヘッダーを削除する場合は、.headers off
を使用できます 。
設定を保存
このようにモードを設定すると、現在のセッションにのみ設定されます。 SQLiteへの新しい接続を開くと、デフォルト設定に戻ります。
SQLiteに接続するたびにモードを変更し続ける必要がないように設定を保持したい場合は、設定を .sqlitercに保存できます。 ファイル。
これを行うには、空白のテキストファイルに次のように入力します。
.headers on
.mode csv
次に、それを .sqlitercとして保存します ホームディレクトリにあります。
これで、SQLiteコマンドラインシェルを使用すると、最初に .sqlitercがチェックされます。 任意の設定のファイル。
GROUP_CONCAT()
機能
または、Group_Concat()
を使用することもできます SQLクエリ自体の中からクエリ結果をコンマ区切りのリストに変換する関数。