Navigation: Verwenden von MultiBaseCS > Such- und Filterfunktionen Benutzerdefinierter SQL-Filter |
Themen Zurück Top Vor Menü |
Siehe auch Syntaxhilfe.
Siehe auch Beispiele für SQL-Abfragen.
Mit dem Benutzerdefinierten SQL-Filter können Sie komplexe Filterungen an Ihrem Datenbestand durchführen. Für die Verwendung von SQL-Statements sind Kenntnisse der SQL-Syntax erforderlich.
Das Eingabefeld für SQL-Statements können Sie in der Liste durch einen Klick auf den entsprechenden Befehl in der Symbolleiste öffnen. Sie finden anschließend unterhalb der Liste das Eingabefeld und die Zusatzschaltflächen der SQL-Statements.
SQL-Statements können Ihnen die Arbeit mit MultiBaseCS wesentlich erleichtern. Sie können dabei komplexe Abfragen, wie Sie sie von Microsoft Access oder dem Microsoft SQL Server kennen, durchführen. So lässt sich der Datenbestand durch Eingabe eines SQL-Statements beispielsweise auf Beobachtungen zwischen dem 01.01.2015 und dem 31.03.2015 filtern. Das SQL-Statement sieht wie folgt aus:
WHERE Datum >= '01.01.2015' AND Datum <= '31.03.2015'
oder
WHERE Datum Between '01.01.2015' AND '31.03.2015'
Nachdem Sie das SQL-Statement in das Eingabefeld eingeben haben, können Sie die SQL-Syntax mit einem Klick auf [Prüfen] von MultiBaseCS überprüfen lassen. Ist die Syntax nicht korrekt erhalten Sie eine Fehlermeldung, mit der Sie den Syntaxfehler lokalisieren können.
Anschließend führen Sie das SQL-Statement mit einem Klick auf [Ausführen] aus.
Im Kopfbereich des Benutzerdefiniertes SQL-Filters wird Anzahl der gefundenen Beobachtungen angezeigt. In der Statusleiste wird außerdem der Filterhinweis angezeigt.
Das SQL-Statement können Sie weiterhin nach Ihren Wünschen anpassen. Beispielsweise wäre folgende Erweiterung denkbar (alle Beobachtungen zwischen dem 01.01.2015 und dem 31.03.2015 deren Art Biber ist): WHERE (Datum Between '01.01.2015' AND '31.03.2015') AND Art_deutsch LIKE 'Biber'
Neben der AND-Verknüpfung sind auch OR-Verknüpfungen möglich (alle Beobachtungen zwischen dem 01.01.2015 und dem 31.03.2015 oder alle Beobachtungen deren Art der Biber ist): WHERE (Datum Between '01.01.2015' AND '31.03.2015') OR Art_deutsch LIKE 'Biber' |
---|
Für die Verwendung der SQL-Statements sind Grundkenntnisse der SQL-Syntax erforderlich. Im folgenden haben wir für Sie einige Hinweise, die Ihnen das Erstellen eigener SQL-Statements erleichtern sollen.
Aufbau eines SQL-Statements:
- Ein SQL-Statement beginnt immer mit dem Schlüsselwort WHERE (Suche alle Beobachtungen bei denen…). - Anschließend können Sie einzelne Bedingungen formulieren. - Die Bedingungen können per AND (und) oder OR (oder) verknüpft werden. - Benutzen Sie verschachtelte Abfragen, dann verwenden Sie Klammern um diese logisch zu strukturieren.
WHERE {Bedingung}
WHERE {Bedingung1} AND {Bedingung2}
WHERE {Bedingung1} OR {Bedingung2}
WHERE ({Bedingung1} OR {Bedingung2}) AND {Bedingung3}
Achten Sie bei Kombination der Verknüpfungen AND und OR auf korrekte Klammersetzung. Ohne Klammersetzung werden zunächst alle AND-Verknüpfungen und erst danach die OR-Verknüpfungen ausgewertet.
Eine Bedingung besteht immer aus einem Feldnamen (Art_deutsch), einem Operator (=) und einem Wert (Biber).
Art_deutsch = 'Biber'
Als Operatoren können verwendet werden:
= (gleich) <> (ungleich) <= (kleiner gleich) >= (größer gleich) > (größer) < (kleiner)
Bei Zeichenfolgen-Vergleichen kommt außerdem das Schlüsselwort LIKE zum Einsatz:
Art_deutsch LIKE 'Biber*'
Insbesondere wenn in den Zeichenfolgen Platzhalterzeichen verwendet werden, muss als Vergleichsoperator das Schlüsselwort LIKE verwendet werden. Andernfalls liefert Ihre Suche kein Ergebnis. |
---|
Wichtig für die Funktion eines SQL-Statements ist, dass das SQL-Format für unterschiedliche Datentypen eingehalten wird. Im Wesentlichen werden dabei 4 Typen unterschieden: Zahlenfelder Einfache Angabe des jeweiligen Wertes:
WHERE ID_Art = 12345
WHERE MTB = 4642 Textfelder Angabe des jeweiligen Wertes in einfache Anführungszeichen (Shift-Raute):
WHERE Art_deutsch = 'Biber' oder WHERE Art_deutsch LIKE 'Biber*'
Alle Orte von A bis F
WHERE Ort Between 'A*' AND 'F*'
Alle Arten (deutsch) von K bis Z
WHERE Art_deutsch Between 'K*' AND 'Z*' Boolean-Felder (Ja/Nein) Bei Anbindung an Microsoft SQL Server und Oracle-Datenbanken: Bei Ja/Nein Feldern steht eine 1 für Ja und eine 0 für Nein.
WHERE Flag_Export = 1 |
---|
Mit Hilfe von Platzhaltern (Wildcards) kann nach Zeichenfolgen gesucht werden, wenn nur ein Teil der Zeichenfolge bekannt ist oder vorgegeben werden soll, also z.B. nur der Anfang, nur das Ende oder ein Teil an einer beliebigen Stelle in der Zeichenfolge.
Der Stern (*) repräsentiert eine unbekannte Zeichenfolge, so dass auf diese Art und Weise auch nach einem bestimmten Anfang, Ende oder Mittelstück eines Textes gesucht werden kann.
|
---|
Das Filterergebnis können Sie mit Klick auf den jeweiligen Spaltenkopf sortieren. Wenn das Filterergebnis jedoch mehr Treffer liefert, als in der Liste angezeigt werden (können), sollten Sie die Sortierung nach der WHERE-Klausel mit angeben.
Mit nachfolgender Syntax sortieren Sie das Filterergebnis nach dem Feld Ortsbezeichnung.
WHERE Art_deutsch LIKE 'Biber' ORDER BY Ortsbezeichnung
Eine Sortierung ist nicht mit Feldern vom Datentyp text, ntext und image möglich. In der MultiBaseCS Datenbank sind jedoch nahezu alle Bemerkungsfelder vom Datentyp text. Daher muss der Feldinhalt der Bemerkungsfelder beim Sortieren in eine Zeichenfolge mit fester Zeichenlänge konvertiert werden.
Nutzen Sie nachfolgendes Syntax-Beispiel, um nach dem Feld Bemerkung zu sortieren.
WHERE Bemerkung LIKE 'in Trupp%' ORDER BY CAST(Bemerkung AS VARCHAR(4000)) Aufsteigend/ absteigend sortieren Um aufsteigend/ absteigend zu sortieren, nutzen Sie die Zusätze ASC bzw. DESC.
Aufsteigend sortieren WHERE Art_deutsch LIKE 'Biber' ORDER BY Ortsbezeichnung ASC
Absteigend sortieren WHERE Art_deutsch LIKE 'Biber' ORDER BY Ortsbezeichnung DESC |
---|
Bei Oracle-Datenbanken gibt es einige Besonderheiten zu beachten.
Da es in Oracle-Datenbanken nicht möglich ist, case insensitive zu suchen, müssen sowohl die Suchfelder als auch die Suchbegriffe in Groß- oder Kleinschreibung gewandelt werden.
UPPER(tblArten.Art_Deutsch) LIKE UPPER('Biber')
|
---|
Bei der Abfrage von Datumsfeldern sind einige Besonderheiten zu beachten. Zum einen kommt die Zeit als Element zum Datum hinzu, zum anderen ist die Syntax in verschiedenen Datenbanksystemen unterschiedlich.
Der Wert für die Uhrzeit wird in MultiBaseCS mit im Feld Datum gehalten. Daher ist der Wert 15.10.2019 10:30:00 größer als 15.10.2019 08:15:00. Somit lassen sich Datensätze mit Zeitbezug auch entsprechend sortieren. Wichtig zu wissen ist dabei, dass die Abfrage mit Datum = 15.10.2019 nur Datensätze aus der Datenbank zurückgibt, die im Feld Datum den Wert 15.10.2019 00:00:00 enthalten. Alle Datensätze mit dem gleichen Datum und einer Zeitangabe sind größer als dieser Wert und damit nicht gleich. Sollen Datensätze für einen bestimmten Tag aus der Datenbank abgefragt werden, so muss in der Abfrage selbst der Zeitwert für den Vergleich ausgeschlossen werden.
Abfrage eines Datums (ohne Beachtung der Zeitangabe)
Bei SQL-Server-Datenbanken: CONVERT(DATE,tblDaten.Datum) = '15.10.2019'
Alternativ: (tblDaten.Datum >= '15.10.2019' AND tblDaten.Datum < '16.10.2019')
Bei Oracle- oder PostgreSQL-Datenbanken: TO_CHAR(tblDaten.Datum,'DD.MM.YYYY') = '15.10.2019'
Abfrage eines Datums (mit Beachtung der Zeitangabe)
Bei SQL Server-Datenbanken: CONVERT(SMALLDATETIME,tblDaten.Datum) = '15.10.2019 10:30'
Bei Oracle- oder PostgreSQL-Datenbanken: TO_CHAR(tblDaten.Datum,'DD.MM.YYYY HH24:MI') = '15.10.2019 10:30'
|
---|
Damit aufwendige SQL-Statements nicht immer wieder neu entworfen werden müssen, können diese gespeichert und wieder geladen werden. SQL-Statement speichern Das aktuelle SQL-Statement kann für eine spätere Verwendung gespeichert werden. Klicken Sie dazu im Werkzeugbereich des Benutzerdefinierten SQL-Filters auf die Schaltfläche [Speichern].
Es öffnet sich der Assistent Benutzerdefiniertes SQL-Statement speichern.
Um das richtige SQL-Statement später wiederzufinden, geben Sie eine treffende Bezeichnung und Beschreibung ein und klicken auf [Übernehmen]. SQL-Statement suchen Um ein gespeichertes SQL-Statement wiederzuverwenden, klicken Sie im Werkzeugbereich des Benutzerdefinierten SQL-Filters auf die Schaltfläche [Laden].
Es öffnet sich der Dialog SQL-Statement laden.
In der Liste des Dialoges werden alle gespeicherten SQL-Statements angezeigt. Durch Eingabe eines Suchbegriffes im unteren Dialogbereich können Sie die Treffer einschränken.
Über die Auswahlliste im Feld SQL-Statements können Sie zwischen eigenen, offiziellen und allen SQL-Statements wählen. Wenn Sie in der Verwendung von SQL-Statements unsicher sind, verwenden Sie bitte nur Offizielle SQL-Statements. Diese sind in der Regel vom Datenbankadministrator geprüft und freigegeben.
Durch einen Doppelklick auf einen Eintrag oder durch Kick auf die Schaltfläche [Übernehmen] wird das jeweilige SQL-Statement in den Benutzerdefinierten SQL-Filter geladen und Sie können es anschließend ausführen.
|
---|
Die Syntaxhilfe stellt Beispiele von Abfragekriterien zur Verfügung. Siehe dazu Syntaxhilfe. |
---|
Zuletzt aktualisiert am 29.06.2021