改行⇔カンマ区切り変換(SQLのIN句作成)

Excelの1列やテキストの一覧を貼り付けると、カンマ区切り・SQLのIN句に変換します。

入力(1行に1つ)

結果

🔗 この結果を別のツールで続けて使う

結果を入れた状態で、選んだツールを開きます(データは送信も保存もしません)。

入力したデータは送信も保存もしません。悪用することも一切ありません。くわしく

SQLのIN句を一瞬で作る

「このIDのデータだけ抽出してほしい」とExcelで一覧を渡されたとき、SQLの WHERE id IN ('A0001', 'A0002', ...) を手で書くのは面倒で、 クォートやカンマの付け忘れも起きやすい作業です。 このツールにExcelの列を貼り付ければ、シングルクォートで囲んでカンマでつないだ IN 句がすぐにできあがります。

変換例(早見表)

設定出力
シングルクォート+ININ ('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' のような値を貼り直しても二重に囲まれることはありません。

変換・計算の結果は正確さに努めていますが、すべての入力での動作を保証するものではありません。 業務で使う場合は、重要なデータは結果を確認してからご利用ください。詳しくは免責事項をご覧ください。