💽
SQLのIN句に大量データをコピペするときの小技
はじめに
データを調査する際、例えば SELECT の IN 句に適するフォーマットにするための小技について書きます。
目的の format
以下のように("1","2","3",,,)
の形に持っていきます。
汎用性のため、文字列を扱います。
SELECT id, name
FROM users
WHERE IN ("1","2","3",,,)
元データ
一つの想定として CSV の列に調べたい ID 一覧が載っているものとします。
id, name,
1, "田中",
2, "佐藤",
3, "鈴木"
,,,
これがせいぜい数個であれば、手書きでも簡単に書けそうですが、2 桁、3 桁の数になってくると面倒なので一括で直していきたいですよね。
VSCode を使っている前提で簡単にそのようなデータを作れる小技があります。
方法
- 適当なテキストファイルを作成する(Ctrl + n)
- CSV をスプシ等にアップロードし、該当 id 列をコピペしてテキストファイルに貼り付ける
そうすると、以下のようなファイルができています。
- 一番上の要素の左側にカーソルを持っていき、Opt + Shift を押したまま一番下の要素の左側をクリック
これにより、矩形選択されている状態になります。
- ダブルクオテーションを入力
これにより全ての行の左側にダブルクオテーションが入力されます。
- 一番上の要素の右側を選択したまま、2 行目の左側にカーソルを持っていきコピーする。
これにより改行コードを選択できます。
- Crtl + f で検索窓を開き貼り付け、一括置換機能でダブルクオテーションとカンマ
",
に置換する
実行前はこんな感じの画面になり、
実行後は改行がなくなり、ダブルクオテーションとカンマを含む一行のデータになります。
- 末尾にダブルクオテーションを付与して完成
まとめ
上記の操作により、SQL の IN 句にコピペして貼り付けたら即実行できるフォーマットの文字列を作り出すことができます。
何かの機会にご活用ください!
Discussion