SQL-Syntax

Anmerkungen zu Schlüsselwörtern

Ein SQL-Block kann eine Reihe von Klauseln enthalten, die durch Semikolons getrennt sind.

Mithilfe der einzelnen Blöcke können die folgenden Aufgaben mit den folgenden Schlüsselwörtern durchgeführt werden:

  1. Auswahl aufheben: CLEAR SELECTION
  2. Skalare Variable festlegen: LET
  3. Listenvariable festlegen: LIST
  4. Objekte auswählen: SELECT
  5. Auswahl von Objekten aufheben (Objekte aus der Auswahl entfernen): DESELECT
  6. Objekte löschen: DELETE
  7. Werte von Feldern oder Variablen ändern: SET und UPDATE
  8. Wertetabelle erstellen, die in einem Raster angezeigt oder in eine CSV-Datei ausgegeben werden kann: SELECT

Mit Ausnahme der ersten drei Aufgaben gilt Folgendes:

Nachfolgend finden Sie weitere Informationen zu den Schlüsselwörtern:

  1. Auswahl löschen

    So heben Sie die Auswahl auf

    CLEAR SELECTION

  2. Skalare Variable festlegen

    So legen Sie eine skalare Variable fest

    LET <Variablenname> = <Wert>

  3. Listenvariable festlegen

    So legen Sie eine Listenvariable fest

    LIST <Variablenname> = <Wert>, <Wert>, <Wert>, <Wert>

  4. Objekte auswählen

    So wählen Sie mit dem Schlüsselwort SELECT Objekte aus

    SELECT

    SELECT ALL

    SELECT SELECTED

    SELECT FROM conduit

    SELECT ALL FROM conduit

    SELECT SELECTED FROM conduit

    SELECT WHERE x > 0

    SELECT ALL WHERE x > 0

    SELECT SELECTED WHERE x > 0

    SELECT FROM conduit WHERE conduit_width > 250

    SELECT ALL FROM conduit WHERE conduit_width > 250

    SELECT SELECTED FROM conduit WHERE conduit_width > 250

    Wenn Sie mit dem aktuellen Auswahlmodus eine Auswahl aus der aktuellen Tabelle treffen, kann das Schlüsselwort SELECT weggelassen werden:

    x > 0

  5. Auswahl von Objekten aufheben

    So heben Sie mit dem Schlüsselwort DESELECT die Auswahl von Objekten auf

    DESELECT

    DESELECT ALL

    DESELECT SELECTED

    DESELECT FROM conduit

    DESELECT ALL FROM conduit

    DESELECT SELECTED FROM conduit

    DESELECT WHERE x > 0

    DESELECT ALL WHERE x > 0

    DESELECT SELECTED WHERE x > 0

    DESELECT FROM conduit WHERE conduit_width > 250

    DESELECT ALL FROM conduit WHERE conduit_width > 250

    DESELECT SELECTED FROM conduit WHERE conduit_width > 250

  6. Objekte löschen

    So löschen Sie Objekte mit dem Schlüsselwort DELETE

    DELETE

    DELETE ALL

    DELETE SELECTED

    DELETE FROM conduit

    DELETE ALL FROM conduit

    DELETE SELECTED FROM conduit

    DELETE WHERE x > 0

    DELETE ALL WHERE x > 0

    DELETE SELECTED WHERE x > 0

    DELETE FROM conduit WHERE conduit_width > 250

    DELETE ALL FROM conduit WHERE conduit_width > 250

    DELETE SELECTED FROM conduit WHERE conduit_width > 250

  7. Werte von Feldern oder Variablen ändern

    Verwenden Sie zum Ändern der Werte von Feldern oder Variablen das Schlüsselwort SET. Sie können mehrere Werte gleichzeitig festlegen, indem Sie die Zuweisungen durch Kommas trennen.

    SET x = x - 100, y = y - 100

    SET x = x - 100, y = y - 100 WHERE ground_level > 20

    Verwenden Sie zum Überschreiben der aktuellen Tabelle und des aktuellen Auswahlmodus das Schlüsselwort UPDATE.

    UPDATE ALL SET x = x - 100, y = y - 100

    UPDATE SELECTED SET x = x - 100, y = y - 100

    UPDATE node SET x = x - 100, y = y - 100

    UPDATE ALL node SET x = x - 100, y = y - 100

    UPDATE SELECTED node SET x = x - 100, y = y - 100

    UPDATE ALL SET x = x - 100, y = y - 100 WHERE ground_level > 20

    UPDATE SELECTED SET x = x - 100, y = y - 100 100 WHERE ground_level > 20

    UPDATE node SET x = x - 100, y = y - 100100 WHERE ground_level > 20

    UPDATE ALL node SET x = x - 100, y = y - 100 100 WHERE ground_level > 20

    UPDATE SELECTED node SET x = x - 100, y = y - 100 100 WHERE ground_level > 20

  8. Wertetabelle erstellen

    Verwenden Sie zum Auswählen mehrerer Werte das Schlüsselwort SELECT, und fügen Sie anschließend die durch Kommas getrennten Werte für die Ausgabe ein.

    SELECT node_id ,MAX(us_links.conduit_width), MIN(us_links.conduit_width)

    Der Titel der Spalte im Raster oder in der CSV-Datei kann mit dem Schlüsselwort AS überschrieben werden:

    SELECT node_id AS title,MAX(us_links.conduit_width) as mymax,MIN(us_links.conduit_width) as mymin

    Der Titel kann entweder ohne Anführungszeichen (in diesem Fall darf er weder Leerzeichen noch nicht alphanumerische Zeichen enthalten) oder mit Anführungszeichen angegeben werden:

    SELECT node_id AS title,MAX(us_links.conduit_width) as mymax,MIN(us_links.conduit_width) as '£% my min'

    Die Tabelle kann überschrieben werden.

    SELECT node_id AS title,MAX(us_links.conduit_width) as mymax,MIN(us_links.conduit_width) as mymin FROM node

    Die Ergebnisse werden in einem Raster angezeigt, es sei denn, mit dem Schlüsselwort INTO wird eine Datei angegeben.

    SELECT node_id AS title,MAX(us_links.conduit_width) as mymax,MIN(us_links.conduit_width) as mymin FROM node INTO FILE 'c:\temp\mynodes.csv'

    Die betreffenden Objekte können mit dem Schlüsselwort WHERE gefiltert werden.

    SELECT node_id AS title,MAX(us_links.conduit_width) as mymax,MIN(us_links.conduit_width) as mymin FROM node WHERE MAX(us_links.conduit_width) > 450

    Die berechneten Ergebnisse können über Gruppen von Objekten aggregiert werden.

    SELECT MAX(MAX(us_links.conduit_width)) GROUP BY system_type

    Die zurückgegebenen aggregierten Ergebnisse können mit dem Schlüsselwort HAVING begrenzt werden.

    SELECT MAX(MAX(us_links.conduit_width)) GROUP BY system_type HAVING MAX(MAX(us_links.conduit_width))<1000

Unterstützte SQL-Syntax

In der folgenden Tabelle ist die in diesem Autodesk-Produkt unterstützte SQL-Syntax aufgeführt. Weitere Anmerkungen finden Sie weiter unten.

Ausführliche Informationen zur Verwendung von SQL sowie zu allen unterstützten Funktionen finden Sie im technischen Dokument SQL in InfoWorks WS Pro.

Kommentartext

Kommentartext wird ignoriert, wenn die Abfrage ausgeführt wird.

/* Anfang des Kommentartexts
*/ Ende des Kommentartexts

Funktionen

INT(Zahl)

Ganzzahlteil einer Zahl

FLOOR(Zahl)

Nächste Ganzzahl kleiner oder gleich dem Parameter

CEIL(Zahl)

Nächste Ganzzahl größer oder gleich dem Parameter

FIXED(umzurechnende Zahl,Dezimalstellenanzahl) Bei Angabe einer Zahl und einer Dezimalstellenanzahl von 0 bis 8 wird die Zahl in eine Zeichenfolge mit dieser Dezimalstellenanzahl umgerechnet und entsprechend auf- oder abgerundet. Wenn die Anzahl der Dezimalstellen 0 beträgt, hat die Zeichenfolge kein Dezimalzeichen.

abs(x)

Absoluter Wert von x. Die Funktion gibt x zurück, wenn x >= 0, andernfalls -x.

left(s,n)

Gibt die ersten n Zeichen der Zeichenfolge s oder die gesamte Zeichenfolge zurück, wenn n größer als die Länge der Zeichenfolge ist.

right(s,n)

Gibt die letzten n Zeichen der Zeichenfolge s oder die gesamte Zeichenfolge zurück, wenn n größer als die Länge der Zeichenfolge ist.

mid(s,n,m)

Gibt die Teilzeichenfolge der Zeichenfolge s mit m Zeichen ab Position n zurück, beginnend mit 1 als Startposition.

len(s)

Gibt die Länge der Zeichenfolge s zurück.

iif(x,y,z)

Gibt y zurück, wenn der Ausdruck x wahr ist, andernfalls z.

nvl(x,y) Gibt y zurück, wenn x null ist, andernfalls x.

subst(s1,s2,s3)

Ersetzt das erste Vorkommen der Zeichenfolge s2 in der Zeichenfolge s1 durch die Zeichenfolge s3.

Beispiel:

subst(node_id,'01','ND')

Bei Anwendung auf Knoten-ID 01880132 wird ND880132 zurückgegeben.

gsubst(s1,s2,s3)

Ersetzt alle Vorkommen der Zeichenfolge s2 in der Zeichenfolge s1 durch die Zeichenfolge s3.

Beispiel:

gsubst(node_id,'01','ND')

Bei Anwendung auf Knoten-ID 01880132 wird ND88ND32 zurückgegeben.

gensubst(s,regAusdr,Format)

Ersetzt die Zeichenfolge s durch das definierte Format, wenn der reguläre Ausdruck regAusdr mit der Zeichenfolge s übereinstimmt. Andernfalls wird die Zeichenfolge s unverändert zurückgegeben.

Beispiel:

gensubst(node_id,'(01)(..)(..)(.*)','ND\2\4a\1')

Bei Anwendung auf Knoten-ID 01880132 wird ND8832a01 zurückgegeben.

  • Mit dem regulären Ausdruck kann die Zeichenfolge durch Klammern in Unterausdrücke unterteilt werden.
  • Im obigen Beispiel entspricht (01)(..)(..)(.*) jeder Knoten-ID mit mindestens 6 Zeichen, die mit 01 beginnt. Das erste (..) entspricht dem 3. und 4. Zeichen der Zeichenfolge, das zweite (..) dem 5. und 6. Zeichen und (.*) dem Rest der Zeichenfolge.
  • Bei einer Übereinstimmung wird eine Zeichenfolge im definierten Format zurückgegeben. Dabei steht \1 für die Werte im ersten Unterausdruck in Klammern (01) und \2 für die Werte im zweiten Unterausdruck in Klammern (hier -88) usw. bis \9.
nl()

Gibt ein Zeilenumbruchzeichen zurück.

So richten Sie beispielsweise ein dreizeiliges Anmerkungsfeld ein

SET notes = 'Set'+NL()+'new'+NL()+'line'

yearpart(s)

YEARPART wird auf das Jahr eines Datums angewendet bzw. gibt dieses zurück. Wenn das Datum 24/09/2007 lautet, ist YEARPART 2007.

Anmerkung: Die Funktionen YEARPART, MONTHPART, und DAYPART können mit Datums- und Zeichenfolgenfeldern, die als Datumsangaben formatiert sind, verwendet werden. Bei Verwendung mit einer Zeichenfolge, die kein Datum ist, wird null zurückgegeben.

monthpart(s)

MONTHPART wird auf den Monat eines Datums angewendet bzw. gibt diesen zurück. Im obigen Beispiel ist MONTHPART 09.

Anmerkung: Die Funktionen YEARPART, MONTHPART, und DAYPART können mit Datums- und Zeichenfolgenfeldern, die als Datumsangaben formatiert sind, verwendet werden. Bei Verwendung mit einer Zeichenfolge, die kein Datum ist, wird null zurückgegeben.

daypart(s)

DAYPART wird auf den Tag eines Datums angewendet bzw. gibt diesen zurück. Im obigen Beispiel ist DAYPART 24.

Anmerkung: Die Funktionen YEARPART, MONTHPART, und DAYPART können mit Datums- und Zeichenfolgenfeldern, die als Datumsangaben formatiert sind, verwendet werden. Bei Verwendung mit einer Zeichenfolge, die kein Datum ist, wird null zurückgegeben.

NOW()

Funktion ohne Parameter, die den aktuellen Zeitpunkt definiert. Diese Funktion verwendet das aktuelle Datum und die aktuelle Uhrzeit des Computers, sodass SQL-Abfragen mit der Funktion NOW nicht vor jeder Ausführung neu geschrieben werden müssen, um aktualisiert zu werden.

DATEPART(Datum)

DATEPART gibt den Datumsteil als Datum zurück (Minuten werden beispielsweise aus dem Datum entfernt).

TIMEPART(Datum)

TIMEPART gibt den Uhrzeitteil eines Datums als Anzahl von Minuten nach Mitternacht zurück.

YEARSDIFF(von,bis)

YEARSDIFF gibt die Anzahl der vollständigen Jahre zwischen zwei Datumsangaben zurück.

Anmerkung: Die Funktionen YEARSDIFF, MONTHSDIFF und DAYSDIFF ignorieren eventuelle Minutenangaben in den betreffenden Datumsangaben.

MONTHSDIFF(von,bis)

MONTHSDIFF gibt die Anzahl der vollständigen Monate zwischen zwei Datumsangaben zurück.

Anmerkung: Die Funktionen YEARSDIFF, MONTHSDIFF und DAYSDIFF ignorieren eventuelle Minutenangaben in den betreffenden Datumsangaben.

DAYSDIFF(von,bis)

DAYSDIFF gibt die Anzahl der vollständigen Tage zwischen zwei Datumsangaben zurück.

Anmerkung: Die Funktionen YEARSDIFF, MONTHSDIFF und DAYSDIFF ignorieren eventuelle Minutenangaben in den betreffenden Datumsangaben.

INYEAR(Datum,Nummer)

INYEAR gibt True zurück, wenn das Datum in dem als Zahl angegebenen Jahr liegt.

Anmerkung: Wenn einer der Parameter der Funktionen INYEAR, INMONTH, INYEARS und INMONTHS keine Zahl ist, gibt die Funktion False zurück. Wenn die Zahl keine Ganzzahl ist, wird sie auf die nächste Ganzzahl gerundet.

INMONTH(Datum,Monat,Jahr)

INMONTH gibt True zurück, wenn das Datum in dem als Zahl angegebenen Jahr und Monat liegt.

Anmerkung: Wenn einer der Parameter der Funktionen INYEAR, INMONTH, INYEARS und INMONTHS keine Zahl ist, gibt die Funktion False zurück. Wenn die Zahl keine Ganzzahl ist, wird sie auf die nächste Ganzzahl gerundet.

INYEARS(Datum,Startjahr,Endjahr)

INYEARS gibt True zurück, wenn das Datum in einem Jahr zwischen dem Start- und dem Endjahr (jeweils einschließlich) liegt.

Anmerkung: Wenn einer der Parameter der Funktionen INYEAR, INMONTH, INYEARS und INMONTHS keine Zahl ist, gibt die Funktion False zurück. Wenn die Zahl keine Ganzzahl ist, wird sie auf die nächste Ganzzahl gerundet.

INMONTHS(Datum,Startmonat,Startjahr,Endmonat,Endjahr)

INMONTHS gibt True zurück, wenn das Datum zwischen dem Startmonat im Startjahr und dem Endmonat im Endjahr liegt (jeweils einschließlich).

Anmerkung: Wenn einer der Parameter der Funktionen INYEAR, INMONTH, INYEARS und INMONTHS keine Zahl ist, gibt die Funktion False zurück. Wenn die Zahl keine Ganzzahl ist, wird sie auf die nächste Ganzzahl gerundet.

ISDATE(mutmaßliches_Datum)

Wenn das Feld ein Datum ist, da es aus der Datenbank stammt, wird True zurückgegeben. Wenn es sich um eine Zeichenfolge handelt, die in ein Datum konvertiert werden kann, wird ebenfalls True zurückgegeben; andernfalls False.

MONTHYEARPART(Datum)

MONTHYEARPART gibt die Zeichenfolge <Monat>/<Jahr> zurück.

YEARMONTHPART(Datum)

YEARMONTHPART gibt die Zeichenfolge <Jahr>/<Datum> zurück.

MONTHNAME(Datum)

MONTHNAME gibt den Namen des Monats (im aktuellen Gebietsschema) zurück.

SHORTMONTHAME(Datum)

SHORTMONTHNAME gibt den abgekürzten Namen des Monats zurück (abhängig vom Gebietsschema und dem Abkürzungsformat von Windows).

DAYNAME(Datum)

DAYNAME gibt den Namen des Tages (im aktuellen Gebietsschema) zurück.

SHORTDAYNAME(Datum)

SHORTDAYNAME gibt den abgekürzten Namen des Tages zurück (abhängig vom Gebietsschema und dem Abkürzungsformat von Windows).

NUMTOMONTHNAME(n) Gibt bei Angabe einer Ganzzahl von 1 bis 12 den Namen des Monats zurück.
NUMTOSHORTMONTHNAME(n) Gibt bei Angabe einer Ganzzahl von 1 bis 12 die Kurzversion eines Monatsnamens (z. B. JAN) zurück.
TODATE(Jahr,Monat,Tag) Gibt bei Angabe von Jahr, Monat und Tag als Ganzzahlen das Datum zurück.
TODATETIME(Jahr,Monat,Tag,Stunden,Minuten) Gibt bei Angabe von Jahr, Monat und Tag als Ganzzahlen das Datum zurück.

Listenfunktionen

Diese Funktionen dienen zum Aufteilen von Werten in Bereiche, zum Bewerten von Werten, zum Zuordnen von Werten zu Listen usw.

AREF(n,Liste)

AREF gibt bei Angabe einer Listenvariablenliste und einer Zahl zwischen 1 und der Länge der Liste das n-te Element in der Liste zurück.

LEN(Listenvariable)

LEN gibt die Anzahl der Elemente in einer Listenvariablen zurück.

RINDEX(Ausdruck,Listenvariable)

RINDEX ist eine Funktion, die nur verwendet werden kann, wenn die Liste sortiert ist. Der Zweck der Funktion RINDEX besteht im Wesentlichen darin, Werte in Buckets zu unterteilen.

LOOKUP(Ausdruck,Listenvariable)

Wenn die Liste n Elemente enthält und der Wert des Ausdrucks zwischen 1 und einschließlich n liegt, gibt LOOKUP das entsprechende Element aus der Liste zurück.

MEMBER(Ausdruck,Listenvariable)

MEMBER gibt true zurück, wenn der Wert des Ausdrucks einer der Werte in der Liste ist, andernfalls false.

INDEX(Ausdruck,Listenvariable)

Wenn das Ergebnis des Ausdrucks der erste Wert in der Liste ist, gibt INDEX 1 zurück. Wenn es der zweite Wert ist, wird 2 zurückgegeben. Wenn das Ergebnis des Ausdrucks nicht in der Liste enthalten ist, wird 1 zurückgegeben.

TITLE(n,Liste)

TITLE stellt Titel für die Buckets bereit, wenn RINDEX verwendet wird, um Werte in eine Reihe von Bereichen zu unterteilen.

Mathematische Funktionen

LOG(x)

Berechnet den Logarithmus (Basis 10) von x.

LOGE(x)

Berechnet den Logarithmus (Basis e) von x.

EXP(x)

Berechnet e^x.

SIN(x)

Berechnet den Sinus von x.

COS(x)

Berechnet den Kosinus von x.

TAN(x)

Berechnet den Tangens von x.

ASIN(x)

Berechnet den Arkussinus von x.

ACOS(x)

Berechnet den Arkuskosinus von x.

ATAN(x)

Berechnet den Arkustangens von x.

ATAN2(x,y)

Berechnet den Arkustangens von x/y mithilfe der Vorzeichen von x und y, um den Quadranten zu ermitteln.

GAMMALN(x)

Gibt den LOG-Wert (Basis e) der Gamma-Funktion von x zurück.

Aggregatfunktionen

Aggregatfunktionen ermöglichen die Berechnung von Werten basierend auf folgenden Elementen:

ANY

ANY gibt True zurück, wenn der Ausdruck für eine beliebige Zeile des Anordnungsfelds wahr ist. Beispiel:

ANY(details.code=’JDS’)

Gibt true zurück, wenn eine der Zeilen des Detailanordnungsfelds den Code JDS enthält, andernfalls false.

Der Ausdruck in Klammern kann mehrere Anordnungsfelder, andere Felder des Objekts, Konstanten und Nicht-Aggregatfunktionen enthalten. Diese können mit arithmetischen, vergleichenden und logischen Operatoren kombiniert werden.

ALL

ALL gibt True zurück, wenn der Ausdruck für alle Zeilen/verwandten Objekte/Zeitschritte wahr ist.

COUNT

COUNT zählt die Anzahl der Zeilen/verwandten Objekte/Zeitschritte, für die der Ausdruck wahr ist.

MAX

MAX gibt den Maximalwert (Zahl, Datum oder Zeichenfolge) für alle Zeilen/verwandten Objekte/Zeitschritte zurück.

MIN

MIN gibt den Minimalwert (Zahl, Datum oder Zeichenfolge) für alle Zeilen/verwandten Objekte/Zeitschritte zurück.

MAX und MIN funktionieren mit numerischen Feldern, Datumsfeldern und Zeichenfolgenfeldern. Bei Zeichenfolgenfeldern erfolgt der Vergleich zwischen Zeichenfolgen basierend auf der Sprache der Windows-Installation.

AVG

AVG gibt den Mittelwert aller Werte des Ausdrucks (nur numerisch), die ungleich null sind, für alle Zeilen/verwandten Objekte/Zeitschritte zurück.

FIRST

FIRST gibt den Wert des Ausdrucks für die erste Zeile/das erste verwandte Objekt/den ersten Zeitschritt zurück.

LAST

LAST gibt den Wert des Ausdrucks für die erste Zeile/das erste verwandte Objekt/den ersten Zeitschritt zurück. Daher wird bei der Berechnung des Werts einer der Datensätze im Anordnungsfeld berücksichtigt.

Arithmetische Operatoren

+-*/><=>=<=<>

Alle diese Operatoren verhalten sich bei Zahlen erwartungsgemäß. <> bedeutet "ungleich".

Darüber hinaus kann + zur Verkettung von Zeichenfolgen verwendet werden. + ist der einzige arithmetische Operator mit einer speziellen Bedeutung für Zeichenfolgen.

^

Der Operator ^ bedeutet "Potenzieren". Beispiel: x^2 bedeutet "x zum Quadrat".

%

a % b gibt den Rest von a / b an, z. B. gibt Jahr % 10 die letzte Ziffer des Jahres an.

Logische Operatoren

ANDORNOT

Selbsterklärend

Andere Operatoren

IS NULL

Gibt true zurück, wenn ein Feld NULL ist.

IS NOT NULL

Gibt true zurück, wenn ein Feld nicht NULL ist.

LIKE

Die beiden folgenden Sonderzeichen können mit LIKE verwendet werden:

  • * steht für eine Übereinstimmung mit einem beliebigen Wert.
  • ? steht für eine Übereinstimmung mit einem Zeichen.

Jedes andere Zeichen in einer Zeichenfolge stimmt nur mit sich selbst überein.

Der Abgleich erfolgt wie unter DOS:

  • LIKE '*' steht für eine Übereinstimmung mit einem beliebigen Wert.
  • LIKE 'ABC*' steht für eine Übereinstimmung mit einem beliebigen mit ABC beginnenden Wert.
  • LIKE '???' steht für eine Übereinstimmung mit einer beliebigen dreistelligen Zeichenfolge.

Wie unter DOS werden für * immer alle Werte zurückgegeben. Daher können z. B. nicht mit LIKE '*AB' Zeichenfolgen, die auf AB enden, oder mit LIKE '*AB*' Zeichenfolgen, die AB enthalten, ermittelt werden.

Beachten Sie, dass sich dieses Verhalten von LIKE von dem Verhalten in Microsoft Access unterscheidet.

MATCHES

MATCHES ermöglicht komplexere Suchvorgänge als LIKE mithilfe regulärer Ausdrücke.

Wichtige Syntaxelemente:

  • . (Punkt): beliebiges alphanumerisches Zeichen
  • * (Sternchen): null oder mehr des vorherigen Zeichens. B* entspricht also null oder mehr Buchstaben B.
  • + (Plus): eines oder mehr des vorherigen Zeichens. B+ entspricht also einem oder mehr Buchstaben B.
  • ? (Fragezeichen): null oder eines des vorherigen Zeichens. B? entspricht also null oder einem Buchstaben B.

Der Abgleich funktioniert wie folgt:

  • MATCHES '.*' steht für eine Übereinstimmung mit einem beliebigen Wert.
  • MATCHES 'ABC.*' steht für eine Übereinstimmung mit einer beliebigen mit ABC beginnenden Zeichenfolge.
  • MATCHES 'ABC.+' steht für eine Übereinstimmung mit einer beliebigen mit ABC beginnenden Zeichenfolge, gefolgt von mindestens einem weiteren Zeichen.
  • MATCHES '.*ABC.*' steht für eine Übereinstimmung mit einer beliebigen ABC enthaltenden Zeichenfolge.
  • MATCHES '.*ABC' steht für eine Übereinstimmung mit einer beliebigen auf ABC endenden Zeichenfolge.
  • MATCHES 'RS*' steht für eine Übereinstimmung mit einer beliebigen mit R beginnenden Zeichenfolge, gefolgt von null oder mehr Buchstaben S.

Reguläre Ausdrücke sind leistungsstark und bieten weitaus mehr Möglichkeiten als in den obigen Beispielen gezeigt. Weitere Informationen zu regulären Ausdrücken und deren Syntax finden Sie in diesem Wikipedia-Artikel.

Konstanten

True

False

NULL

Selbsterklärend

Aggregatfunktionen (nur Ergebnisse)

Es ist möglich, die Aggregatfunktionen für alle Simulationsergebnisse statt nur für einen Snapshot zu verwenden, indem tsr anstelle von sim verwendet wird.

DURATION

DURATION: Zeit (in Minuten), für die der Ausdruck True lautet (nur Ergebnisse)

INTEGRAL

INTEGRAL: Summe des Ausdruckswerts für jeden Zeitschritt, multipliziert mit der Länge des Zeitschritts in Minuten (nur Ergebnisse)

WHENEARLIEST

WHENEARLIEST: Frühester Zeitpunkt, für den der Ausdruck True lautet (nur Ergebnisse)

WHENLATEST

WHENLATEST: Spätester Zeitpunkt, für den der Ausdruck True lautet (nur Ergebnisse)

EARLIEST

EARLIEST: Erster Wert ungleich null des Ausdrucks (nur Ergebnisse)

LATEST

LATEST: Letzter Wert ungleich null des Ausdrucks (nur Ergebnisse)

WHENMAX

WHENMAX: Zeitpunkt, zu dem der Ausdruck sein Maximum erreicht hat (nur Ergebnisse)

WHENMIN

WHENMIN: Zeitpunkt, zu dem der Ausdruck sein Minimum erreicht hat (nur Ergebnisse)

Zusätzliche Anmerkungen zur Verwendung von SQL

  1. Die SQL-Engine führt keine umfangreiche Typprüfung durch, sodass Sie zahlreiche nützliche Aufgaben durchführen können. Beispiele:
    1. SET user_number_1 = x > 390000 setzt bei x > 390000 den Parameter user_number_1 auf 1 und andernfalls auf 0, da bedingte Ausdrücke true in 1 und false in 0 auswerten.
    2. SET user_text_1 = z - setzt user_text_1 auf den Wert z. Beachten Sie, dass in diesem Fall die Zeichenfolgen unnötige Dezimalpunkte enthalten und Dezimalstellen abgeschnitten werden, damit diese Zeichenfolgen bei Bedarf am Ende weiter verkettet werden können.
    3. SET user_number_1 = user_text_1 weist den Wert zu, wenn die Zeichenfolge eine gültige Zahl ist.
  2. Das Verhalten von NULL ist etwas komplexer.
    1. Im Wesentlichen entspricht NULL dem Wert "kein Wert". Die Tabellenansichten funktionieren bei Zahlen insofern genauso, als dass ein Unterschied zwischen der Eingabe von 0 und dem Leerlassen einer Rasterzelle besteht. Leere Werte entsprechen NULL, d. h. für x IS NULL werden die Objekte mit leeren Zellen ausgewählt.
    2. Gemäß der allgemeinen Regel für SQL gibt jede Operation, die einen beliebigen Wert und NULL enthält, NULL zurück. Beispiele:
      • 3 + NULL ist NULL.
      • 3 > NULL ist NULL.
      • 3 < NULL ist NULL.

      Die SQL-Engine behandelt Gleichheit geringfügig anders. x = NULL und x <> NULL entsprechen X IS NULL und X IS NOT NULL.

  3. Bei Zeichenfolgen ist eine leere Zeichenfolge gleichzeitig NULL und "" (leere Zeichenfolge). Daher wählen asset_id IS NULL, asset_id = "" und len(asset_id)=0 Zeichenfolgen ohne Asset-ID aus.
  4. Boolesche Felder (Felder mit Kontrollkästchen) haben kein Konzept von NULL.
  5. Möglicherweise tritt ein Analysefehler auf, wenn Sie einen Feldnamen eingeschlossen haben, der mit einer Zahl beginnt. Es wird empfohlen, solche Feldnamen in der SQL-Abfrage in [ ] zu setzen. Beispiel: Statt SET 2d_pt_id = subcatchment_id können Sie SET [2d_pt_id] = subcatchment_id eingeben.