Excelシートの列に入っている値をコピーしてSQL文WHERE条件のIN句で使いたいとき、ありますよね。
特に手で入力するには値の数が多いとき、クエリ作成の時短に使っている方法の手順を書きます。
サクラエディタに慣れていれば手順内の太字部分だけを読んでできるはず。またサクラエディタでなくとも、正規表現を使った置換ができるエディタなら問題ないかと思います。
IN条件が数値の場合
- Excelシート内の対象列をコピー
- サクラエディタに貼り付ける
- Ctrl+rで置換ウィンドウを開く
- 置換ウインドウ内で「正規表現」にチェック
- 改行を表す正規表現 「¥r¥n」を置換前の値に設定し置換後を「, ¥r¥n」として実行
- 結果をSQLクエリのIN句内に貼り付ける
普段はクエリの可読性を高めるためIN条件の値1つごとに改行するようにしていますが、IN句を1行で収めたい場合は置換後の設定を 「, ¥r¥n」ではなく「,」と変更することで解決できます。
IN条件が文字列の場合
値をダブルコーテーションで囲んで文字列としたい場合には置換の方法が変わってきます。
- Excelシート内の対象列をコピー
- サクラエディタに貼り付ける
- Ctrl+rで置換ウィンドウを開く
- 置換ウインドウ内で「正規表現」にチェック
- 行頭を表す正規表現「^」を置換前の値に設定し置換後を「^"」として実行
- 改行を表す正規表現 「¥r¥n」を置換前の値に設定し置換後を「", ¥r¥n」として実行
- 結果をSQLクエリのIN句内に貼り付ける
条件が数値の場合と同様に、IN句を1行で収めたい場合は手順6で置換後の設定を「", ¥r¥n」ではなく「",」 と変更してください。
参考
利用可能な正規表現
(サクラエディタ公式ドキュメント)