← ハシトシステム トップ English ツール ブログ ポスター
入力
使い方:表計算ソフトの1列をそのまま貼り付けると、SQL の IN 句として使える形に整えます。重複除去・空行除去・折り返しはオプションで切り替えられます。
エスケープ:値の中の単一引用符は SQL の規則どおり2個に増やします。
注意:アプリケーションから実行するクエリは、文字列連結ではなくプレースホルダ(バインド変数)を使ってください。このツールは、手元で1回きりの調査クエリを組み立てるための補助です。
出力
1000件を超えています。Oracle Database は IN のリストに直接書ける式を1000個までとしており、超えると ORA-01795 になります。一時表への投入や、リストの分割を検討してください。

使い方(5ステップ)

調査のたびにエディタの矩形選択で組み立てていた作業を、貼り付けだけで済ませるためのツールです。

  1. 値を縦に貼る — 表計算ソフトの1列をそのままコピーして貼り付ける。区切りは改行のほか、カンマ・タブ・空白も選べる。
  2. クォートの付け方を決める — 自動判定なら、数字だけの値はそのまま、それ以外は単一引用符で囲む。文字列として扱う列なら「常に囲む」を選ぶ。値の中の単一引用符は SQL の規則どおり2個に増やして escape する。
  3. 出力の形を選ぶ — IN 句、カンマ区切りだけ、VALUES の行、INSERT 文、OR の連結から選ぶ。列名とテーブル名は下の欄で変えられる。
  4. 1行あたりの件数を決める — 長い IN 句は折り返さないとレビューしづらい。0 にすると折り返さない。
  5. コピーして貼る — 重複除去と空行除去は既定で有効。件数は出力欄の上に出るので、想定と合っているかを確認する。

よくある質問(FAQ)

値に単一引用符が入っていても大丈夫ですか?

大丈夫です。SQL の規則どおり、値の中の単一引用符を2個に置き換えて出力します。たとえば o'hara は 'o''hara' になります。ただし、これは手作業で SQL を組み立てるための補助であって、アプリケーションから実行するクエリはプレースホルダ(バインド変数)を使ってください。文字列を連結して SQL を作る書き方は SQL インジェクションの原因になります。

IN 句に入れられる値の数に上限はありますか?

データベース製品によります。Oracle Database は IN のリストに直接書ける式の数を1000個までとしており、超えると ORA-01795 になります。このツールは1000件を超えると警告を出します。件数が多い場合は、一時表に入れて結合する、リストを分割して OR でつなぐ、といった方法に切り替えてください。

入力した値はサーバーに送られますか?

送られません。変換はすべてブラウザの中で行われ、通信も保存もしません。とはいえ、本番データベースの実データを他人のPCや共有端末のブラウザに貼ることは、ツールの実装に関係なく避けてください。

数字と文字列が混ざっている列はどうなりますか?

自動判定では、値ごとに「符号つきの整数または小数だけで構成されているか」を見て、そうならクォートを付けず、それ以外は付けます。前ゼロのある 007 のようなコードは数値ではないと判定してクォートを付けます。列の型が文字列だと分かっている場合は、判定に任せず「常に囲む」を選ぶほうが安全です。

重複を残したいときはどうしますか?

「重複を除く」のチェックを外してください。既定では有効になっています。IN 句は重複があっても結果は変わりませんが、レビューのしやすさと式の数の上限を考えると、除いておくほうが扱いやすくなります。

小中学生向け 学習ポスター(無料配布)はこちら →