開発
スプレッドシートをSQLエディタとして使う
shimizu
運用中のシステムに対して、マスター項目のまとまった変更を行う場面がしばしばあります。
例えば、既存の利用者名簿に対して、部署の変更依頼を受けたとします。変更内容として次のようなExcelファイルが送られてきました。
理想的なのはCSV形式などに保存したデータを受け付けるインポート機能を用意することですが、そこまでするほどではないワンオフな作業の場合、しかもすべて手動で入力するには数が多い場合は、その場でSQL文を生成してしまう方法があります。
では、やってみましょう。利用者名簿のテーブルは、このような内容であるとします。
(説明を簡単にするために、部署は文字列としています)
CREATE TABLE users ( id INTEGER, name TEXT, department TEXT );
スプレッドシート上で、2行目のデータの右側の列(例えばE2)に以下の数式を入力します。そして、このセルを縦方向にすべての行(ここではE3〜E6)にコピー&ペーストします。
="UPDATE users SET department='"&B2&"' WHERE id="&A2&";"
そうすると、画面は次のようになります。
これでE列にデータ更新用のSQL文が生成されましたので、後はコマンドラインに貼り付けたり、SQLファイルに保存して流し込めば変更を適用できます。
今回の例では1行につき1カラムを更新するだけの簡単な内容でしたが、複数の列を更新する場合は適宜SET節に追加してください。
以上、スプレッドシートをSQLエディタとして使う方法でした。