SQL-Select-Block

Mit diesem Block-Kommando lässt sich eine SQL-Abfrage komfortabel mittels Schritt für Schritt Eingabe an eine Datenbank richten. Für jede selektierte Zeile wird der Körper (zwischen Zeile “SQL-Schleife“ und “Ende SQL-Select-Block“) ausgeführt. Mit Schleifenabbruch kann das Ausführen unterbrochen werden.


Nach erstellen des Kommandos wird nach einem Kommentar gefragt. Hier bitte den Zweck der Abfrage eingeben.

Resultierende Bild:

SELECT:

Parameter:

  • Connector Name: Name des Connectors.
  • Von Zeile: Festlegung von welcher Zeile weg (LIMIT oder rownum >) gelesen werden soll.
  • Bis Zeile: Festlegung bis zu welcher Zeile (LIMIT oder rownum <) gelesen werden soll.
  • Zielfeld Anzahl Zeilen: Ist das Feld befüllt, wird zuerst eine separate Abfrage gemacht (Count), die die   Gesamtzahl der Zeilen liefert. (Keine Berücksichtigung Von-, Bis Zeile)
  • Zielfeld SQL Abfrage: Das Zielfeld in welches das SQL Statement geschrieben wird.
  • SQL Aktion: Hier kann festgelegt werden, welche Aktion ausgeführt werden soll:

    • Ausführen: ausführen von Count (bei Zielvariable) und Sql Abfrage.
    • Nicht Ausführen: nicht ausführen, sondern Zielvariable für Sql Statement setzen wenn Zielvariable gesetzt wurde.
    • Count: Hier wird nur die Anzahl der Zeilen ermittelt.

 

Select Teil (,):

Parameter:

  • Ausdruck: Spalte oder Konstante in der SQL-Abfrage (SELECT …).
  • Typ: Hier kann Festgelegt werden um welchen Typ es sich beim vorausgegangenen Ausdruck handelt.
    Siehe Details bei AND/OR/WHERE Typ1
  • Zielfeld: Das Zielfeld in dem der Wert geschrieben wird. Wenn das Zielfeld leer bleibt kann man im Körper mit den Kommandos Name-Spaltenwert und Index-Spaltenwert gearbeitet werden. In diesem Fall könnte man auch mehrere Ausdrücke in den Parameter “Ausdruck“ schreiben. Wenn ein Zielfeld leer bleibt müssen nachfolgende Zielfelder ebenfalls leer bleiben.

 

FROM

Parameter:

  • Tabellen: Namen der Tabellen aus denen selektiert werden soll. Es sind hier auch komplexere Ausdrücke erlaubt.

 

JOIN

Tabellen können zusammengeschlossen werden.

Parameter:

  • Join-Art: Namen der Tabellen aus denen selektiert werden soll.

    • COMMA: (, …) Inner Joins -> Nur wenn in beiden Tabellen der Inhalt vorhanden ist.
    • LEFT OUTER JOIN: (LEFT OUTER JOIN …) -> Liefert Ergebnis auch wenn die rechte Tabelle keinen Inhalt hat.
    • INNER JOIN: (INNER JOIN …) -> wie bei Comma erklärt.
    • RIGHT OUTER JOIN: (RIGHT OUTER JOIN …) -> Wie left outer join nur dass die linke Tabelle keine Inhalte haben darf.
    • FULL OUTER JOIN: (FULL OUTER JOIN …) -> Liefert Daten auch wenn Inhalte in entweder der rechten oder der Linken Tabelle fehlen.

  • Tabelle: Tabelle die zusammengeschlossen werden soll.
  • ON Ausdruck 1: Ausdruck für den Join (meistens eine Spalte) Es wird dringend empfohlen etwaige Felder in diesem Ausdruck als Bind-Variablen anzugeben. Bind-Variablen
  • Typ1: Hier kann Festgelegt werden um welchen Typ es sich handelt.
    Siehe Details bei AND/OR/WHERE Typ1
  • Operator: Wählbare SQL Operatoren (LIKE, >, <, usw…) kann auch leer bleiben.
  • Ausdruck 2: Ausdruck für den Join. (meistens eine Spalte) Es wird dringend empfohlen etwaige Felder in diesem Ausdruck als Bind-Variablen anzugeben. Bind-Variablen
  • Typ 2: Siehe Details bei AND/OR/WHERE Typ1

Danach kann mir AND/OR fortgesetzt werden.

 

WHERE

Parameter:

  • Ausdruck: Where Ausdruck (z.B.: 1 = 1) Kann komplexen Ausdruck enthalten.

 

AND/OR

Siehe auch Kommando Bedingung DB im BASE Paket

Parameter:

  • AND/OR/WHERE: Wählen Sie einen Typ (Kann direkt hinter dem where leer bleiben)
  • (: Soll eine oder mehrere Klammer(n) gesetzt werden? z.B.: ( (
  • Ausdruck1: Ausdruck (entweder Spalte, Konstante oder komplexer Ausdruck) Es wird dringend empfohlen etwaige Felder in diesem Ausdruck als Bind-Variablen anzugeben. Bind-Variablen
  • Typ1: Hier kann Festgelegt werden um welchen Typ es sich beim vorausgegangenen Ausdruck handelt.

    • Mit ‘: Es werden automatisch Hochkomma um die Felder gelegt und Hochkomma im Inhalt werden verdoppelt.
    • In Liste: Die im Ausdruck stehenden Begriffe werden zu einer IN CLAUSE gebaut. Ausdruckstrenner ist entweder “,“ oder “;“ und die Teile des Ausdrucks werden in Hochkomma gesetzt.
    • : : SQL Felder als Bildvariablen (SQL-Werte) z.B.: mit :$GLOBAL:MYVAR wird der Inhalt dem globalen Feld MYVAR übergeben. Dies ist eine Sichere Art der Werteübergabe auch bei Datums und numerischen Feldern.
    • Col: Spaltenname des Feldes z.B.: Tabelle DLETODO $DLE:DLETODO.Betreff wird durch den internen Namen der Spalte SUBJECT ersetzt.
      TabCol: Tabellen- und Spaltenname des Feldes (Tabelle.Spalte) Tabelle DLETODO $DLE:DLETODO.Betreff wird durch den internen Namen der Spalte DLETODO.SUBJECT ersetzt.
    • …%: Like Ausdruck '...%' Felder werden mit '...%' versehen und Hochkomma werden verdoppeln. Z.B.: Meier wird zu ‘Meier%‘
    • %..%: Like Ausdruck '%...%' Felder werden mit '%...%' versehen und Hochkomma werden verdoppeln. Z.B.: upper($LOKAL:Strasse) mit dem Inhalt Gasse wird zu upper(‘%Gasse%‘)

  • Operator: Wählen Sie einen SQL Operator aus der Liste (LIKE, >, <, usw…) Es wird dringend empfohlen etwaige Felder in diesem Ausdruck als Bind-Variablen anzugeben. Bind-Variablen
  • Ausdruck2: Ausdruck (entweder Spalte, Konstante oder komplexer Ausdruck)
  • Typ2: Hier kann Festgelegt werden um welchen Typ es sich handelt. Siehe Details bei Typ 1
  • ): Soll eine oder mehrere Klammer(n) gesetzt werden? (Klammer zu) z.B.: ) )
  • Leerwert behandlung: Wie soll mit leeren Werten in Ausdruck2 umgegangen werden.

    • Leer Ignorieren: Wenn der Ausdruck2 leer ist, wird die Zeile ignoriert. Keine Einschränkung liefert alles. Das wird zum Beispiel oft bei Suchmasken benutzt.
    • 0/leer ignorieren: Wenn der Ausdruck2 leer oder 0 ist, wird die Zeile ignoriert.
    • Leer NULL: bei leeren Feldern werden auch null-Werte selektiert. (.... OR ... IS NULL )
    • 0/leer NULL: bei leeren Feldern oder 0-Inhalten werden auch null-Werte selektiert. (.... OR ... IS NULL )

 

GROUP BY

Parameter:

  • Spaltenliste: Liste der Spalten nach denen gruppiert werden soll. Man kann die Spaltenliste aus dem Selectteil danach einfügen. (Zielvariablen werden ignoriert) Zeilen mit gleichen Inhalten in den angegebenen Spalten werden zusammengefasst.

 

ORDER BY

Parameter:

  • Spaltenliste: Liste der Spalten nach denen sortiert werden soll. Man kann die Spaltenliste aus dem Selectteil danach einfügen. (Zielvariablen werden ignoriert)

 

Beispiele: