Zum Inhalt springen
100% lokal

SQL-WHERE-Klausel-Generator

Wandeln Sie eine Werteliste in eine SQL-WHERE-Bedingung mit IN-Listen, Bereichen und LIKE-Mustern um.

Ausgabe

SQL-WHERE-Klausel-Generator

Geben Sie eine Werteliste ein und dieses Tool erstellt daraus automatisch eine einsatzbereite SQL-WHERE-Bedingung — eine IN-Liste, einen BETWEEN-Bereich, ein LIKE-Muster oder einen einfachen Vergleich — ohne dass Sie manuell Anführungszeichen, Kommas und Klammern eingeben müssen. Es ist für den alltäglichen Fall optimiert: eine Spalte aus einer Tabellenkalkulation oder Abfrageergebnis in die nächste Abfrage als Filter umzuwandeln.

Wählen Sie den Spaltennamen, den Operator und wie mehrere Bedingungen verknüpft werden (AND oder OR). IN und NOT IN fassen alle Werte in einer Liste zusammen und teilen diese automatisch in kleinere Batches auf, sobald die Liste die eingestellte Größe überschreitet — so werden lange Listen innerhalb der Parameterlimits von Datenbanken gehalten. IN-Batches werden mit OR verbunden, NOT IN-Batches mit AND, da dies die Logik einer unsgeteilten Liste beibehält. BETWEEN liest jeden Eintrag als ein Paar von:bis. Der Wertetyp (Text, Zahl oder Datum) bestimmt, ob Werte in Anführungszeichen eingeschlossen werden. Jedes Apostroph in einem Textwert wird automatisch verdoppelt, sodass ein Name wie O'Brien die Abfrage nicht zerstört. Wählen Sie einen SQL-Dialekt, um die richtige Anführungszeichensetzung für Spaltennamen zu erhalten — Backticks für MySQL, eckige Klammern für SQL Server, doppelte Anführungszeichen sonst überall.

Neben der literalen Klausel erzeugt das Tool automatisch auch eine parametrisierte Version mit dem Platzhalter-Stil Ihrer Wahl — einfache Fragezeichen, nummerierte $1/$2-Platzhalter oder benannte Platzhalter vom Spaltennamen — plus die Liste der Werte in der Reihenfolge, in der sie gebunden werden müssen. Leere Zeilen in der Werteliste werden standardmäßig übersprungen oder in eine zusätzliche Klausel "OR Spalte IS NULL" umgewandelt, wenn Sie NULL-Zeilen in das Ergebnis einbeziehen möchten.

Alles läuft lokal in Ihrem Browser; die Werte, die Sie eingeben, werden nirgendwohin hochgeladen. Kopieren Sie das Ergebnis, laden Sie es als .txt-Datei herunter oder leiten Sie die Ausgabe zurück zur Eingabe, um es weiter zu verfeinern.

Häufige Fragen

Wie schreibe ich einen Bereich für BETWEEN?
Jede Zeile ist ein Paar von:bis, zum Beispiel 10:20. Zeilen, die kein gültiges Paar sind, werden übersprungen und separat gezählt.
Was passiert mit einer langen Liste beim IN-Operator?
Sobald die Liste länger ist als die eingestellte Batch-Größe, wird sie in mehrere IN (...)-Gruppen aufgeteilt, die mit OR verbunden sind — dies hält jede Datenbank bezüglich der Anzahl der Parameter, die eine Abfrage binden kann, zufrieden.
Verdoppelt es Apostrophe für mich?
Ja. Jedes einzelne Anführungszeichen in einem Text- oder Datumswert wird verdoppelt, sodass ein Wert wie O'Brien zu 'O''Brien' wird und die generierte SQL nicht beschädigten kann.
Wofür ist die parametrisierte Ausgabe?
Das ist die Version, die Sie tatsächlich im Code binden würden — mit ?, $1/$2 oder benannten Platzhaltern statt buchstäblichen Werten — zusammen mit den Werten in der Reihenfolge, in der sie übermittelt werden müssen.
Werden meine Daten irgendwohin hochgeladen?
Nein. Die Klausel wird vollständig in Ihrem Browser erstellt; die von Ihnen eingegebenen Werte verlassen Ihr Gerät nie.