改行⇔カンマ区切り変換(SQLのIN句作成)
Excelの1列やテキストの一覧を貼り付けると、カンマ区切り・SQLのIN句に変換します。
入力(1行に1つ)
結果
🔗 この結果を別のツールで続けて使う
結果を入れた状態で、選んだツールを開きます(データは送信も保存もしません)。
入力したデータは送信も保存もしません。悪用することも一切ありません。くわしく
SQLのIN句を一瞬で作る
「このIDのデータだけ抽出してほしい」とExcelで一覧を渡されたとき、SQLの WHERE id IN ('A0001', 'A0002', ...) を手で書くのは面倒で、
クォートやカンマの付け忘れも起きやすい作業です。
このツールにExcelの列を貼り付ければ、シングルクォートで囲んでカンマでつないだ IN 句がすぐにできあがります。
変換例(早見表)
| 設定 | 出力 |
|---|---|
| シングルクォート+IN | IN ('A0001', 'A0002', 'A0003') |
| 囲まない+IN(数値ID) | IN (101, 102, 103) |
| ダブルクォート+カンマ | "A0001","A0002","A0003"(JSON配列の中身など) |
| 囲まない+パイプ | A0001|A0002|A0003(正規表現の OR 検索) |
| 囲まない+タブ | Excelに貼ると横一列に並ぶ |
便利な使い方
- 重複を除く:一覧に同じ値が混ざっていても、チェックを入れれば1つにまとめます。何件除いたかも表示します。
- 1行に◯件:件数が多いときは、10件ごとに改行するとSQLが読みやすくなります。
- 逆変換:
'a', 'b', 'c'やIN (...)を入力欄に貼って「改行区切りに戻す」を押すと、1行1件の一覧に戻せます。Excelに戻したいときに便利です。
件数が多い IN 句は、データベースによって上限(Oracle は1,000件)やパフォーマンスの問題があります。 表形式のデータをまとめて投入したい場合はExcel表からINSERT文を作るツールも使えます。
よくある質問
Excelの1列をコピーして使えますか?
はい。Excelで縦に並んだセルを選んでコピーし、そのまま貼り付けてください。1行に1つの値として扱います。
値にシングルクォートが含まれているとどうなりますか?
SQLの書き方にあわせて、値の中の ' は '' に二重化してから囲みます(例: O'Neil → 'O''Neil')。
IN句に入れられる件数に上限はありますか?
データベースによって上限があります。Oracle では IN のリストは1,000件までです。件数が多い場合は分割するか、一時テーブルとの JOIN を検討してください。このツールの「件数」表示で確認できます。
すでにクォートで囲まれた値を貼るとどうなりますか?
前後のクォートは一度外してから処理するので、'a','b' のような値を貼り直しても二重に囲まれることはありません。
変換・計算の結果は正確さに努めていますが、すべての入力での動作を保証するものではありません。 業務で使う場合は、重要なデータは結果を確認してからご利用ください。詳しくは免責事項をご覧ください。