Mithilfe der einzelnen Blöcke können die folgenden Aufgaben mit den folgenden Schlüsselwörtern durchgeführt werden:
Mit Ausnahme der ersten drei Aufgaben gilt Folgendes:
So heben Sie die Auswahl auf
CLEAR SELECTION
Verwenden Sie das Schlüsselwort LET, um eine skalare Variable festzulegen. Beispiel:
LET <variable name> = <value>
Verwenden Sie das Schlüsselwort LIST, um eine Listenvariable festzulegen. Beispiel:
LIST <variable name> = <value 1>, <value 2>, <value 3>, <value n>
Verwenden Sie das Schlüsselwort SELECT, um Objekte auszuwählen. Beispiel:
SELECT
SELECT ALL
SELECT SELECTED
SELECT FROM pipe
SELECT ALL FROM pipe
SELECT SELECTED FROM pipe
SELECT WHERE x > 0
SELECT ALL WHERE x > 0
SELECT SELECTED WHERE x > 0
SELECT FROM pipe WHERE diameter > 250
SELECT ALL FROM pipe WHERE diameter > 250
SELECT SELECTED FROM pipe WHERE diameter > 250
Wenn Sie mit dem aktuellen Auswahlmodus eine Auswahl aus der aktuellen Tabelle treffen, kann das Schlüsselwort SELECT weggelassen werden. Beispiel:
x > 0
Verwenden Sie das Schlüsselwort DESELECT, um die Auswahl von Objekten aufzuheben.
DESELECT
DESELECT ALL
DESELECT SELECTED
DESELECT FROM pipe
DESELECT ALL FROM pipe
DESELECT SELECTED FROM pipe
DESELECT WHERE x > 0
DESELECT ALL WHERE x > 0
DESELECT SELECTED WHERE x > 0
DESELECT FROM pipe WHERE diameter > 250
DESELECT ALL FROM pipe WHERE diameter > 250
DESELECT SELECTED FROM pipe WHERE diameter > 250
Verwenden Sie das Schlüsselwort DELETE, um Objekte zu löschen.
DELETE
DELETE ALL
DELETE SELECTED
DELETE FROM pipe
DELETE ALL FROM pipe
DELETE SELECTED FROM pipe
DELETE WHERE x > 0
DELETE ALL WHERE x > 0
DELETE SELECTED WHERE x > 0
DELETE FROM pipe WHERE diameter > 250
DELETE ALL FROM pipe WHERE diameter > 250
DELETE SELECTED FROM pipe WHERE diameter > 250
Verwenden Sie das Schlüsselwort SET, um die Werte von Feldern oder Variablen zu ändern. 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 WHERE ground_level > 20
UPDATE node SET x = x – 100, y = y - 100 WHERE ground_level > 20
UPDATE ALL node SET x = x – 100, y = y – 100 WHERE ground_level > 20
UPDATE SELECTED node SET x = x – 100, y = y – 100 WHERE ground_level > 20
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. Beispiel:
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. Beispiel:
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. Beispiel:
SELECT node_id AS title, MAX(us_links.conduit_width) AS mymax, MIN(us_links.conduit_width) AS '£% my min'
Es ist möglich, die Tabelle mit dem Schlüsselwort FROM zu überschreiben. Beispiel:
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 FILE wird eine Datei angegeben. Beispiel:
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'
Mit dem Schlüsselwort WHERE können zurückgegebene Objekte gefiltert werden. Beispiel:
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
Mit dem Schlüsselwort GROUP BY können über Gruppen von Objekten aggregierte Ergebnisse berechnet werden. Beispiel:
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. Beispiel:
SELECT MAX(MAX(us_links.conduit_width)) GROUP BY system_type HAVING MAX(MAX(us_links.conduit_width)) < 1000
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 wird ignoriert, wenn die Abfrage ausgeführt wird. Kommentare können entweder nach Zeile (wobei die ganze Zeile nach der Kommentarsyntax als Kommentartext behandelt wird) oder nach Block angegeben werden (wobei ein Block als Teil einer Zeile oder über mehrere Zeilen hinweg angegeben werden kann). Kommentartext wird im Dialogfeld SQL syntaktisch grün hervorgehoben.
| Syntax | Beschreibung |
|---|---|
| // | Zeilenkommentar |
| /* | Blockkommentar: Beginn des Kommentartextblocks |
| */ | Blockkommentar: Ende des Kommentartextblocks |
| Syntax | Beschreibung |
|---|---|
|
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.. Beispiel: Die Funktion gibt x zurück, wenn x. >= 0, ansonsten -x . |
|
LEFT(s zurück.,n) |
Gibt die ersten n Zeichen der Zeichenfolge s zurück.zurück oder die gesamte Zeichenfolge, wenn n größer ist als die Länge der Zeichenfolge. |
|
RIGHT(s zurück.,n) |
Gibt die letzten n Zeichen der Zeichenfolge s zurück.zurück oder die gesamte Zeichenfolge, wenn n größer ist als die Länge der Zeichenfolge. |
|
MID(s zurück.,n,m) |
Gibt die Teilzeichenfolge der Zeichenfolge s zurück. zurück, die m Zeichen enthält, beginnend an Position n, wobei ab 1 als Startposition gezählt wird. |
|
LEN(s zurück.) |
Gibt die Länge der Zeichenfolge s zurück. |
|
IIF(x.,y,z.) |
Wenn der Ausdruck x. True lautet, wird yzurückgegeben, andernfalls z. |
| NVL(x.,y) | Wenn x. null ist, wird yzurückgegeben, andernfalls x. |
|
SUBST(s1,s2,s3) |
Ersetzt die erste Instanz der Zeichenfolge s2 in Zeichenfolge s1 durch Zeichenfolge s3. Beispiel: SUBST(node_id,'01','ND') Bei Anwendung auf Knoten-ID 01880132 wird ND880132 zurückgegeben. |
|
GSUBST(s1,s2,s3) |
Ersetzt alle Instanzen der Zeichenfolge s2 in Zeichenfolge s1 durch Zeichenfolge s3. Beispiel: GSUBST(node_id,'01','ND') Bei Anwendung auf Knoten-ID 01880132 wird ND88ND32 zurückgegeben. |
|
GENSUBST(s zurück.,regexp,format) |
Ersetzt Zeichenfolge s zurück. durch das definierte Format, wenn der reguläre Ausdruck regxp der Zeichenfolge s zurück.entspricht, andernfalls wird die Zeichenfolge s zurück. unverändert zurückgegeben. Beispiel: GENSUBST(node_id,'(01)(..)(..)(.*)','ND\2\4a\1') Bei Anwendung auf Knoten-ID 01880132 wird ND8832a01 zurückgegeben. Anmerkung:
Tipp: Reguläre Ausdrücke sind leistungsstark und bieten weitaus mehr Möglichkeiten als in den hier dargestellten Beispielen gezeigt. Weitere Informationen zu regulären Ausdrücken und deren Syntax finden Sie in diesem Wikipedia-Artikel.
|
| NL() |
Gibt ein Zeilenumbruchzeichen zurück. So richten Sie beispielsweise ein dreizeiliges Anmerkungsfeld ein SET notes = 'Set' + NL() + 'new' + NL() + 'line' |
|
YEARPART(s zurück.) |
YEARPART wird auf das Jahr eines Datums angewendet bzw. gibt dieses zurück. Wenn das Datum 24.09.2024 lautet (bei der Formatierung TT/MM/JJJJ), lautet YEARPART 2024. 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 zurück.) |
MONTHPART wird auf den Monat eines Datums angewendet bzw. gibt diesen zurück. Im obigen Beispiel lautet 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 zurück.) |
DAYPART wird auf den Tag eines Datums angewendet bzw. gibt diesen zurück. Im obigen Beispiel lautet 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 <month>/<year> zurück. |
|
YEARMONTHPART(Datum) |
YEARMONTHPART gibt die Zeichenfolge <year>/<date> 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. |
Diese Funktionen dienen zum Aufteilen von Werten in Bereiche, zum Bewerten von Werten, zum Zuordnen von Werten zu Listen usw.
| Syntax | Beschreibung |
|---|---|
|
AREF(n,Liste) |
AREF, wenn eine Listenvariable Liste und eine Zahl zwischen 1 und der Länge von Listeangegeben ist, wird das n-te Element in der Liste zurückgegeben. |
|
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 n Elemente in der Liste vorhanden sind und der Wert des Ausdrucks zwischen 1 und n (einschließlich) 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. |
| Syntax | Beschreibung |
|---|---|
|
LOG(x.) |
Berechnet den Logarithmus (Basis 10) von x.. |
|
LOGE(x.) |
Berechnet den Logarithmus (Basis e) von x.. |
|
EXP(x.) |
Berechnet ex. |
|
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 unter Verwendung der Zeichen x. and y zur Bestimmung des Quadranten. |
|
GAMMALN(x.) |
Gibt den Logarithmus (Basis e) der Gamma-Funktion von x.zurück. |
Aggregatfunktionen ermöglichen die Berechnung von Werten basierend auf folgenden Elementen:
| Syntax | Beschreibung |
|---|---|
|
ANY(bedingter Ausdruck) |
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. Anmerkung: 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(bedingter Ausdruck) |
ALL gibt True zurück, wenn der Ausdruck für alle Zeilen/verwandten Objekte/Zeitschritte wahr ist. |
|
COUNT(bedingter Ausdruck) |
COUNT zählt die Anzahl der Zeilen/verwandten Objekte/Zeitschritte, für die der Ausdruck wahr ist. |
|
MAX(bedingter Ausdruck) |
MAX gibt den Maximalwert (Zahl, Datum oder Zeichenfolge) für alle Zeilen/verwandten Objekte/Zeitschritte zurück. Anmerkung: MAX und MIN funktionieren beide mit numerischen Feldern, Datumsfeldern und Zeichenfolgenfeldern. Bei Zeichenfolgenfeldern erfolgt der Vergleich zwischen Zeichenfolgen basierend auf der Sprache der Windows-Installation.
|
|
MIN(bedingter Ausdruck) |
MIN gibt den Minimalwert (Zahl, Datum oder Zeichenfolge) für alle Zeilen/verwandten Objekte/Zeitschritte zurück. Anmerkung: MAX und MIN funktionieren beide mit numerischen Feldern, Datumsfeldern und Zeichenfolgenfeldern. Bei Zeichenfolgenfeldern erfolgt der Vergleich zwischen Zeichenfolgen basierend auf der Sprache der Windows-Installation.
|
|
AVG(bedingter Ausdruck) |
AVG gibt den Mittelwert aller Werte des Ausdrucks (nur numerisch), die ungleich null sind, für alle Zeilen/verwandten Objekte/Zeitschritte zurück. |
|
FIRST(bedingter Ausdruck) |
FIRST gibt den Wert des Ausdrucks für die erste Zeile/das erste verwandte Objekt/den ersten Zeitschritt zurück. |
|
LAST(bedingter Ausdruck) |
LAST gibt den Wert des Ausdrucks für die letzte Zeile/das letzte zugehörige Objekt/den letzten Zeitschritt zurück. Daher wird bei der Berechnung des Werts einer der Datensätze im Anordnungsfeld berücksichtigt. |
| Syntax | Beschreibung |
|---|---|
|
+ |
Alle diese Operatoren verhalten sich so, wie es von Zahlen zu erwarten ist.
<> bedeutet je nach Kontext Ungleich oder Ist nicht gleich.
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. |
|
% |
Der Operator % bedeutet Modul von, d. h. a % b ergibt den Rest von a / b. Jahr % 10 gibt beispielsweise die letzte Ziffer des Jahres an. |
| Syntax | Beschreibung |
|---|---|
|
AND |
Selbsterklärend |
|
ODER |
|
|
NOT |
| Syntax | Beschreibung |
|---|---|
|
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:
Jedes andere Zeichen in einer Zeichenfolge stimmt nur mit sich selbst überein. Der Abgleich erfolgt wie unter DOS:
Wie unter DOS werden für * immer alle Werte zurückgegeben. Daher können z. B. mit LIKE '*AB' keine Zeichenfolgen, die auf AB enden, bzw. mit LIKE '*AB*' keine 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 mit dem LIKE-Operator, indem reguläre Ausdrücke verwendet werden. Wichtige Syntaxelemente:
Der Abgleich funktioniert wie folgt:
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. |
| Syntax | Beschreibung |
|---|---|
|
JA |
Selbsterklärend |
|
FALSE |
|
|
NULL |
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.
| Syntax | Beschreibung |
|---|---|
|
DURATION(bedingter Ausdruck) |
Zeit (in Minuten), für die der Ausdruck True lautet (nur Ergebnisse). Beispiel: DURATION(tsr.pressure < x) Gibt die kumulative Zeit (in Minuten) zurück, in der ein Knoten einen Druck unter x.aufweist. |
|
INTEGRAL(bedingter Ausdruck) |
Summe des Ausdruckswerts für jeden Zeitschritt, multipliziert mit der Länge des Zeitschritts in Minuten (nur Ergebnisse). Beispiel: INTEGRAL(tsr.flow*60) Gibt das Gesamtvolumen des durch ein Rohr geflossenen Wassers (in Litern) zurück, wenn als Volumenstromeinheit l/s verwendet wird. |
|
WHENEARLIEST(bedingter Ausdruck) |
Frühester Zeitpunkt, für den der Ausdruck True lautet (nur Ergebnisse). Beispiel: WHENEARLIEST(tsr.pressure < x) Gibt das Datum und die Uhrzeit des frühesten Zeitschritts zurück, bei dem ein Knoten einen Druck unter x.aufweist. |
|
WHENLATEST(bedingter Ausdruck) |
Spätester Zeitpunkt, an dem der Ausdruck True lautet (nur Ergebnisse). Beispiel: WHENLATEST(tsr.pressure < x) Gibt das Datum und die Uhrzeit des letzten Zeitschritts zurück, bei dem ein Knoten einen Druck unter x.aufweist. |
|
EARLIEST(bedingter Ausdruck) |
Erster Wert ungleich null des Ausdrucks (nur Ergebnisse). Dies wird wahrscheinlich nur dann zu einer sinnvollen Antwort führen, wenn die Option in Kombination mit der Funktion IIF verwendet wird. Beispiel: EARLIEST(IIF(tsr.pressure < x, tsr.pressure, NULL)) Gibt den Druck eines Knotens am frühesten Zeitschritt zurück, bei dem der Druck des Knotens unter x.lag. |
|
LATEST(bedingter Ausdruck) |
Letzter Wert ungleich null des Ausdrucks (nur Ergebnisse). Dies wird wahrscheinlich nur dann zu einer sinnvollen Antwort führen, wenn die Option in Kombination mit der Funktion IIF verwendet wird. Beispiel: LATEST(IIF(tsr.pressure < x, tsr.pressure, NULL)) Gibt den Druck eines Knotens am spätesten Zeitschritt zurück, bei dem der Druck des Knotens unter x.lag. |
|
WHENMAX(bedingter Ausdruck) |
Zeitpunkt, zu dem der Ausdruck sein Maximum erreicht hat (nur Ergebnisse). Beispiel: WHENMAX(tsr.pressure) Gibt das Datum und die Uhrzeit zurück, zu dem/der ein Knoten den aufgezeichneten maximalen Druck erreicht. |
|
WHENMIN(bedingter Ausdruck) |
Zeitpunkt, zu dem der Ausdruck sein Minimum erreicht hat (nur Ergebnisse). Beispiel: WHENMIN(tsr.pressure) Gibt das Datum und die Uhrzeit zurück, zu dem/der ein Knoten den aufgezeichneten minimalen Druck erreicht. |
SET user_number_1 = x > 390000setzt bei x > 390000 den Parameter user_number_1 auf 1, andernfalls auf 0, da bedingte Ausdrücke für True in 1 und für False in 0 ausgewertet werden.
SET user_text_1 = zsetzt user_text_1 auf den Wert z. Beachten Sie, dass in diesem Fall unnötige Dezimalzeichen und Dezimalstellen in den Zeichenfolgen abgeschnitten werden, damit diese Zeichenfolgen bei Bedarf am Ende weiter verkettet werden können.
SET user_number_1 = user_text_1weist den Wert zu, wenn es sich bei der Zeichenfolge um eine gültige Zahl handelt.
Die SQL-Engine behandelt Gleichheit geringfügig anders. x = NULL und x <> NULL verhalten sich genauso wie X IS NULL und X IS NOT NULL.
asset_id IS NULL
asset_id = ""
LEN(asset_id)=0
Beispiel: Anstatt
SET 2d_pt_id = subcatchment_idzu schreiben, können Sie
SET [2d_pt_id] = subcatchment_idverwenden.