値の一覧をIN句に変換
Excel列、改行区切り、CSV、タブ区切りの値からSQLのIN句を作ります。
使い方
表計算ソフトの列をそのまま貼り付けると、検索や検証用SQLへ素早く流し込めます。文字列モードではシングルクォートをSQL用にエスケープします。
SQL IN句生成は、Excelの列やCSV、改行・カンマ・タブ区切りで貼り付けた値の一覧から、SQLのIN句をワンクリックで作成するツールです。「このIDのリストに該当するデータを調べたい」というとき、何十件・何百件もの値を手作業でカンマ区切り・クォート付きに整形するのは手間がかかります。本ツールは重複削除、前後の空白除去、文字列のシングルクォート囲み(エスケープ込み)、数値モード、1行あたりの値数指定などに対応し、検索や検証用SQLへすぐに貼り付けられる形式を出力します。
使い方・サンプル・結果例・注意点
使い方
「値の一覧」欄にExcelやCSVから値を貼り付け、カラム名や値の形式・区切り文字などのオプションを設定して「生成」を押すと、IN句が結果欄に出力されます。
サンプル入力
値の一覧: A001 A002 A003 A002 カラム名: user_id 値の形式: 文字列(シングルクォート) 区切り文字: 自動 1行あたりの値数: 20
結果例
上記を「生成」すると、「重複を削除」がオンのため重複している「A002」が1件にまとめられ、次のようなSQLが出力されます。 user_id IN ( 'A001', 'A002', 'A003' ) 統計欄には入力値数4、出力値数3、削除した重複1件が表示されます。値の形式を「数値(クォートなし)」に切り替えると 'A001' ではなく A001 のようにクォートなしで出力されます。
注意点
「文字列(シングルクォート)」モードでは、値の中にシングルクォートが含まれる場合は自動的にSQL用のエスケープ('を''に変換)が行われます。「未加工(クォートなし)」モードは、すでにSQL式や関数呼び出しを含む値をそのまま出力したい場合に使用してください。1行あたりの値数を指定すると、IN句が長くなりすぎないよう自動で改行され、可読性が向上します。生成されるのはIN句の文字列のみで、SQLの実行や構文チェックは行いません。入力値はブラウザ内でのみ処理され、サーバーへ送信されることはありません。
こんなときに使えます
- データアナリストが、Excelで抽出した数百件の顧客IDをコピーし、特定顧客の取引履歴を調べるSQLのWHERE句を即座に作成する
- QAエンジニアが、テストケース一覧の商品コードをCSVから貼り付け、テスト対象データを抽出するクエリを生成する
- バックエンド開発者が、本番環境の不具合調査で、ログから集めたエラー発生注文番号のリストをIN句に変換してデータベースを確認する
- 運用担当者が、棚卸しでチェックすべき在庫管理番号の一覧をスプレッドシートからそのまま貼り付け、検証用SQLを作る
よくある質問
区切り文字の「自動」はどのように判定されますか?
入力テキストに含まれる改行、カンマ、タブの出現状況から適切な区切り文字を推定します。Excelから複数列をコピーした場合などはタブ区切りとして扱われることが多いです。意図通りに分割されない場合は、区切り文字を改行・カンマ・タブのいずれかに手動で指定してください。
数値モードと文字列モードの違いは何ですか?
数値モードはクォートなしでそのまま出力されるため、整数や小数のIDに使います。文字列モードは各値をシングルクォートで囲み、含まれるシングルクォートをエスケープします。コード形式のID(例: A001のように英字を含む)は文字列モードを選んでください。
空の値や重複する値はどう扱われますか?
デフォルトでは「空の値を除外」と「重複を削除」がオンになっており、空白行や重複した値は自動的に取り除かれます。すべての値をそのまま出力したい場合はチェックを外してください。
生成されたIN句の値の数に制限はありますか?
ツール自体に明確な値数の上限はありませんが、データベースによってはIN句に指定できる値の数に上限がある場合があります(例: Oracleの1000件制限など)。大量の値を扱う場合は、利用するデータベースの仕様もあわせてご確認ください。