Berechnen von Feldwerten

Mit Feldberechnungen kann der Besitzer des gehosteten Feature-Layers oder der Administrator der Organisation die Werte jeder Zeile für ein Feld in der Attributtabelle eines Layers ändern.

Beispiel: Bei einem gehosteten Feature-Layer, in dem Informationen zu Immobilienverkäufen, einschließlich Verkaufspreis und Steuersatz für den Immobilienstandort, gespeichert werden, können Sie im Layer ein Feld hinzufügen, in dem die geschätzten Grundsteuern gespeichert werden. Um das Feld estimated_property_taxes zu belegen, definieren Sie einen Berechnungsausdruck für das Feld, der die Werte im Feld sale_price mit den Werten im Feld tax_rate multipliziert.

In einem gehosteten Feature-Layer haben Sie beim Schreiben von Berechnungsausdrücken für Felder in Layern zwei Möglichkeiten:

  • ArcGIS Arcade: Arcade eignet sich besonders gut für Berechnungen, die die Funktionalität von SQL übersteigen, da Arcade Zugriff auf Attributwerte und Feature-Geometrie ermöglicht, sodass Sie Ausdrücke erstellen können, die räumliche Operation enthalten. Zudem können Sie, wenn bei der Berechnung einer bestimmten Zeile ein Fehler auftritt, die Berechnung anhalten, das Problem beheben und die Berechnung anschließend erneut starten.

    Hinweis:

    Bei ArcGIS API for JavaScript 3.44 und höher erfolgt keine Aktualisierung auf die aktuellen Sprachfunktionen von ArcGIS Arcade. Arcade-Ausdrücke, die in JavaScript API-Apps der Version 3.44 oder höher erstellt wurden, unterstützen nur in der Arcade-Version 1.21 oder früher eingeführte Arcade-Sprachfunktionen. Weitere Informationen zur Arcade-Sprachunterstützung in ArcGIS-Produkten finden Sie in der Arcade-Versionsmatrix.

  • SQL: Mit SQL erzielen Sie die schnellste Performance bei Berechnungen, die mit standardisierten SQL-Ausdrücken (SQL-92) für nichträumliche Attribute durchgeführt werden können. Im Gegensatz zu Arcade-Ausdrücken können SQL-Ausdrücke für gehostete Feature-Layer mit aktivierter Synchronisierung und Layer, die zum Verfolgen von Erstellern oder Bearbeitern von Features konfiguriert wurden, ausgeführt werden.

Im nächsten Abschnitt wird erläutert, wie Werte für ein Feld über die Elementseite eines gehosteten Feature-Layers berechnet werden. Die folgenden Abschnitte enthalten Beispiele für häufige Berechnungen.

Berechnen von Werten für ein Feld über die Elementseite

Führen Sie die folgenden Schritte aus, um Zeichenfolge-, numerische oder Datumswerte in einem Feld über die Elementseite eines Feature-Layers zu berechnen.

Hinweis:

Feldberechnungen können nicht rückgängig gemacht werden. Aus diesem Grund sollten Sie ein Feld hinzufügen, in diesem Feld die Werte berechnen und nachprüfen, ob die Berechnung wie gewünscht ausgeführt wird. Wenn dies der Fall ist, können Sie das ursprüngliche Feld so wie das hinzugefügte Feld berechnen. Wenn Sie festgestellt haben, dass die Werte im ursprünglichen Feld korrekt sind, können Sie das hinzugefügte Feld wieder löschen.

  1. Klicken Sie auf der Elementseite des Layers auf die Registerkarte Daten, um die Tabelle anzuzeigen.
  2. Klicken Sie auf die Spalte, die die Werte enthält, die Sie berechnen möchten.
  3. Öffnen Sie das Dialogfeld Feld berechnen mit einer der folgenden Methoden:
    • Klicken Sie auf Berechnen.
    • Klicken Sie auf Detaillierte Ansicht anzeigen > Berechnen.
  4. Wählen Sie die Sprache für Ihre Berechnung aus, entweder Arcade oder SQL.

    Wenn für den gehosteten Feature-Layer die Synchronisierung aktiviert wurde oder wenn der gehostete Feature-Layer so konfiguriert wurde, dass nachverfolgt wird, wer Features erstellt und aktualisiert, wird diese Seite nicht angezeigt. Stattdessen wird das SQL-Fenster angezeigt.

  5. Erstellen Sie einen Berechnungsausdruck.
    • Verwenden Sie bei SQL Basisoperatoren, eine Feldliste und Funktionen. Klicken Sie auf die Schaltfläche Überprüfen, um sich zu vergewissern, dass im Ausdruck keine Fehler enthalten sind. Wenn der Ausdruck ungültig ist, klicken Sie auf die Schaltfläche Entfernen, und erstellen Sie einen neuen Ausdruck. Wenn der Ausdruck vollständig und gültig ist, klicken Sie auf Berechnen.
    • Verwenden Sie bei Arcade globale Variablen, Funktionen und Konstanten. Klicken Sie auf OK, um den Ausdruck auszuführen. Wenn beim Ausführen des Ausdrucks ein Fehler auftritt, können Sie auf Fehler überprüfen klicken, um das Ausdrucksfenster zum Beheben des Fehlers zu öffnen. Andernfalls klicken Sie auf Abbrechen. Wenn Sie den Ausdruck korrigieren und erneut ausführen, beginnt die Berechnung von Neuem.

Die Dauer der Berechnung hängt von der Komplexität des Ausdrucks und von der Anzahl der Features im Layer ab.

Beispielberechnungen

Die folgenden Abschnitte enthalten die Beispielsyntax für häufige Berechnungen in ArcGIS Online.

Durchführen einer mathematischen Operation mit numerischen Werten in zwei vorhandenen Feldern, um ein drittes Feld auszufüllen

Eine der häufigsten Berechnungen, die Sie durchführen, ist das Ableiten eines neuen numerischen Wertes basierend auf vorhandenen Werten in Ihrem Feature-Layer. Sie könnten z. B. den Gesamtumsatz eines Jahres für alle Filialen vom Gesamtumsatz eines anderen Jahres subtrahieren, um die Änderung des Gewinns von einem Jahr zum nächsten zu ermitteln. Sie könnten aber auch die Gesamtzahl von Bewohnern unter 18 Jahren durch die Gesamtbevölkerung dividieren, um den Anteil der Bevölkerung unter 18 Jahren zu bestimmen.

Arcade-Beispiele

Berechnen Sie die Differenz der Werte in den beiden numerischen Feldern "Sales2016" und "Sales2017", um ein numerisches Feld auszufüllen.

$feature.Sales2016 - $feature.Sales2017

SQL-Beispiele

Füllen Sie ein numerisches Feld mit einer Dezimalzahl aus, die das Ergebnis der Berechnung ist, welcher Anteil der Bevölkerung unter 18 Jahre alt ist.

PopUnder18/TotalPop

Verketten von Zeichenfolgenwerten aus vorhandenen Feldern in einem neuen Zeichenfolgenfeld

Bei einer anderen Berechnung, bei der ein neues Feld ausgefüllt wird, werden Werte aus vorhandenen Zeichenfolgenfeldern kombiniert. Sie könnten z. B. über zwei Zeichenfolgenfelder für die Lage von Zimmern in einem Hotel verfügen ("Floor" und "Room") und möchten sie in einem Zeichenfolgenfeld kombinieren, das beide Angaben enthält.

In den folgenden Beispielen werden die Werte für die Felder "Floor" und "Room" in einem Feld kombiniert.

Beispiel für Arcade

Concatenate($feature.room,$feature.floor)

SQL-Beispiel

CONCAT(Floor,Room)

Entfernen von nachgestellten oder vorangestellten Leerzeichen aus Zeichenfolgenfeldern

Wenn bei der Bearbeitung Werte in ein Feld eingegeben oder eingefügt werden, kann der Text versehentlich nachgestellte oder vorangestellte Leerzeichen enthalten. Sie können diese Fehler korrigieren, indem Sie die Werte kürzen.

Bei diesen Beispielen wissen Sie, dass der Editor ein nachgestelltes Leerzeichen hinzugefügt hat, als er "New Hampshire" in das Feld für die Namen der Bundesstaaten eingefügt hat. Daher kürzen Sie das Leerzeichen am Ende der Zeichenfolge.

Beispiel für Arcade

Trim('New Hampshire ')

SQL-Beispiel

Trim(TRAILING ' ' FROM 'New Hampshire ')

Ausfüllen eines Feldes mit anderen Werten abhängig von den Werten in einem anderen Feld

Manchmal ist der Wert, der einem Feld hinzugefügt werden soll, je nach Feature unterschiedlich und hängt von einem anderen Wert für das gleiche Feature ab. Sie können z. B. zu einem Feature-Layer ein Zeichenfolgenfeld für den Text hinzufügen, der einen numerischen oder abgekürzten Zeichenfolgenwert in einem anderen Feld beschreibt. Da die SQL-Berechnungsoberfläche dies nicht unterstützt, verwenden Sie Arcade für diese Arten von Berechnungen.

Beispiel für Arcade

Im folgenden Beispiel werden verschiedene Zeichenfolgenwerte ("None", "Low", "High" oder "Other") basierend auf einer Zahl in einem anderen Feld im Layer ("HowMany").

When(
  $feature.HowMany == 0, "None",
  $feature.HowMany == 1, "Low",
  $feature.HowMany == 2,  "High",
"Other")

Ersetzen eines Wertes durch einen anderen

Wenn Sie einen vorhandenen Wert durch einen anderen ersetzen müssen, weil sich z. B. die Darstellung eines bestimmten Wertes geändert hat oder Sie einen Schreibfehler korrigieren müssen, können Sie nach allen vorhandenen Werten für ein Feld suchen und sie durch einen neuen Wert ersetzen. Da die SQL-Berechnungsoberfläche dies nicht unterstützt, verwenden Sie Arcade für diese Arten von Berechnungen.

Vorsicht:

Berechnungen werden sofort im Feature-Layer gespeichert. Wenn Sie einen vorhandenen Wert fälschlicherweise überschreiben, müssen Sie den Wert erneut berechnen, um ihn wieder zurück zu ändern.

Beispiel für Arcade

In diesem Beispiel wird mit der Funktion Ersetzen die britische Schreibweise (colour) in die amerikanische Schreibweise geändert.

Replace($feature.color, 'colour', 'color')

Bestimmen der Dichte eines numerischen Attributs pro Feature-Fläche

Zur Berechnung der Dichte in einer Fläche verwenden Sie einen Arcade-Ausdruck, da Sie über die Berechnungsoberfläche keine SQL-Berechnungen für räumliche Felder ausführen können.

Beispiel für Arcade

In diesem Beispiel wird die Populationsdichte pro Feature ermittelt, indem der Wert für die Gesamtbevölkerung ("TotalPop") durch die Fläche des Polygon-Features in Quadratmeilen geteilt wird:

$feature.TotalPop / Area ($feature,
'square-miles')

Ableiten der Koordinate für ein Punkt-Feature

Sie können mit einem Arcade-Ausdruck die Längengrad- oder Breitengradkoordinate für die räumlichen Felder in einem gehosteten Feature-Layer zurückgeben, der nur Punkte enthält.

Diese Art von Berechnung wird für das räumliche Feld über die Berechnungsoberfläche nicht unterstützt.

Beispiel für Arcade

In diesem Beispiel wird mit der Funktion Geometrie ein Feld für die X-Koordinate für jeden Punkt in einem Punkt-Layer berechnet.

Geometry($feature).x

Hinzufügen von Zeit zu oder Subtrahieren von Zeit von einem Datum

Um ein aktualisiertes Datumsfeld zu erhalten, kann man Zeit zu einem Datumsfeld oder Datumsliteralwert addieren oder davon subtrahieren. Beispielsweise lässt sich ein künftiges Inspektions- oder Prüfdatum durch Hinzufügen von Zeit zu einem Datum berechnen.

Beispiel für Arcade

In diesem Beispiel werden mit der Funktion DateAdd sieben Tage zu einem Datum addiert, um das Datum der Folgewoche zu erhalten.

var startDate = Date($feature.dateField);
var oneWeekLater = DateAdd(startDate, 7, 'days');
return oneWeekLater;

SQL-Beispiele

Mit den folgenden Berechnungen können Sie Zeit zu einem Datumsfeld addieren oder davon subtrahieren. Sie können dazu auch einen von SQL unterstützten Datumsliteralwert verwenden. Bei der ersten werden Datumsfelder verwendet, bei der zweiten Werte für Datumsliterale. Es können auch Zahlenfelder und Zahlenliterale verwendet werden. Wie Sie im dritten und vierten Rechenbeispiel sehen können, werden beliebige Kombinationen aus Feldern und Literalen unterstützt.

<DateField> +/- <NumberField> = updated date
DATE'<SQL-supported Date Literal>'  +/- <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >'  +/- <NumberField> = updated date

Das berechnete Datumsfeld ergibt sich aus dem ursprünglichen Datum plus oder minus die Anzahl der Tage, die addiert oder subtrahiert werden sollen. Die Anzahl der Tage kann sowohl eine ganze Zahl sein als auch einen Bruch beinhalten – so würde z. B. 1,5 für eineinhalb Tage bzw. 36 Stunden stehen.

Im folgenden Beispiel wird ein Maschinenteil am 14.6.2016 um 10.00 Uhr installiert. Mit einer der folgenden Berechnungsmethoden können Sie ein Inspektionsdatum einen Monat (30 Tage) nach diesem Installationsdatum erzeugen. Bei der ersten Berechnung wird ein Datumsfeld mit dem Wert 6/14/2016 und ein Zahlenfeld mit dem Wert 30 verwendet, während bei der zweiten ein Datumsliteral und ein Zahlenliteral verwendet werden.

<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM

Berechnen der Differenz zwischen zwei Datumsangaben

Manchmal ist es erforderlich, den Zeitraum zwischen zwei Datumsangaben zu berechnen. Wenn Ihnen z. B. die Installationsdaten und Inspektionsdaten für Stromzähler vorliegen, können Sie die Differenz zwischen den beiden Daten ermitteln, um zu überprüfen, ob der Zeitabstand zwischen Installation und Inspektion innerhalb der zulässigen Vorgaben liegt. Das Ergebnis dieser Berechnung ist kein Datumsfeld, sondern ein Zahlenfeld.

Beispiel für Arcade

Im folgenden Beispiel wird mit der Funktion DateDiff das Alter einer Person berechnet, indem die Differenz zwischen einem aktuellen Datum (endDate) und dem Geburtsdatum der Person (startDate) ermittelt wird:

var startDate = Date($feature.startDateField);
var endDate = Date($feature.endDateField);
var age = DateDiff(endDate, startDate, 'years');
return age;

SQL-Beispiele

Zum Berechnen des Zeitabstands zwischen zwei Daten können Sie beliebige Kombinationen von Datumsfeldern und Datumsliteralen verwenden. Bei der ersten nachstehenden Berechnung wird ein Datumsfeld verwendet, bei der zweiten ein Datumsliteral. Bei dritten und vierten Berechnung wird sowohl ein Datumsfeld als auch ein Datumsliteral verwendet.

<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2>  = number of days in between

Das Ergebnis ist ein Zahlenfeld, das durch Subtraktion eines Datumsfelds oder Datumsliterals von einem anderen Datumsfeld oder Datumsliteral berechnet wird. Das Ergebnis kann sowohl eine ganze Zahl (von Tagen) sein als auch einen Bruch beinhalten – so würde z. B. 1,5 für eineinhalb Tage bzw. 36 Stunden stehen.

Im vorstehend erwähnten Beispiel für Stromzählerinspektionen kann zur Berechnung des Zeitraums zwischen einem Installationsdatum vom 1.6.2015 und 1.10.2015 jeder der folgenden Berechnungswege verwendet werden. Bei der ersten Berechnung werden Datumsfelder verwendet, beim zweiten Datumsliterale und im dritten und vierten jeweils ein Datumsfeld und ein Datumsliteral.

<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)

Überlegungen beim Berechnen von Feldwerten

  • Wenn Sie Werte für einen Layer in Map Viewer Classic berechnen und über einen Filter für den Layer verfügen, werden nur die Werte der Datensätze berechnet, die den Filterkriterien entsprechen.
  • Beim Schreiben von SQL-Ausdrücken funktioniert Feld berechnen nur mit Feldnamen, nicht mit Feldaliasnamen. In der Liste Felder werden alle Feldnamen angezeigt, die für Berechnungen verfügbar sind. Diese Liste kann nach den Feldtypen String, Numerisch und Datum gefiltert werden.
    • Wenn Sie mit der Maus auf einen Feldnamen in der Liste Felder zeigen, werden Feld-Aliasname und -typ angezeigt.
    • Wenn Sie auf einen Feldnamen in der Liste Felder klicken, wird das Feld zu dem Ausdruck hinzugefügt.
  • In Kopien von gehosteten Feature-Layern oder für gehostete Feature-Layer, denen Kachel-Layer zugeordnet sind, können Sie Feldwerte nicht berechnen.
  • Berechnete Werte im gehosteten Feature-Layer oder in der Sicht werden nicht an abhängige gehostete Szenen-Layer weitergegeben.
  • Die Formatierung entsprechend dem Gebietsschema wird für Zahlen in SQL-Ausdrücken nicht unterstützt. Zum Beispiel müssen Sie, wenn "Spanien" als Gebietsschema festgelegt ist, für Werte in Attributtabellen trotzdem den Punkt statt des Kommas als Dezimaltrennzeichen verwenden.
  • Die numerische Funktion MOD können Sie für Double-Felder nicht verwenden. Konvertieren Sie das Feld in eine Ganzzahl, wie im Beispiel dargestellt.
  • Für gehostete Feature-Layer mit aktivierter Synchronisierung oder für gehostete Feature-Layer, die so konfiguriert wurden, dass nachverfolgt wird, wer Features erstellt oder zuletzt aktualisiert hat, können keine Arcade-Ausdrücke geschrieben werden.
  • Arcade kann nicht verwendet werden, um Werte für die folgenden Felddatentypen auf der Elementseite eines Feature-Layers zu berechnen:
    • Big Integer
    • Nur Datum
    • Nur Zeit
    • Zeitstempelversatz

    Hinweis:

    Wenn ein Layer in einem gehosteten Feature-Layer diese Datentypen enthält, werden Arcade-Berechnungen für den gesamten gehosteten Feature-Layer deaktiviert. Dies gilt auch für Sublayer, die keine nicht unterstützten Datentypen enthalten.

Referenz für standardisierte SQL-Funktionen (SQL-92)

Verwenden Sie beim Schreiben eines SQL-Ausdrucks, mit dem Feldwerte berechnet werden, standardisierte SQL-Funktionen. Dieser Abschnitt enthält eine Liste der Operatoren und SQL-Funktionen, die Sie für SQL-Berechnungen in ArcGIS Online verwenden können.

Nachdem Sie einen SQL-Ausdruck erstellt haben, klicken Sie auf die Schaltfläche Berechnen. Falls Fehler vorliegen, wird im unteren Bereich des Dialogfeldes eine Fehlermeldung angezeigt. Korrigieren Sie die Ausdruckssyntax, und wiederholen Sie die Berechnung.

Operatoren

Im Dialogfeld Feld berechnen können Sie einfache SQL-Ausdrücke mit Operatoren wie Addieren, Subtrahieren, Multiplizieren und Dividieren erstellen. Nachfolgend finden Sie einige Beispiele und Tipps für die Verwendung dieser Operatoren:

  • Um alle Werte in einem numerischen Feld namens SAMPLE mit 100,0 zu multiplizieren, geben Sie SAMPLE * 100.0 für den Ausdruck ein.
  • Für komplexere Gleichungen können Sie Klammern verwenden, um die Reihenfolge der Berechnungen festzulegen, z. B. SAMPLE * (BASELINE - 40).
  • Mathematische Operatoren funktionieren nicht mit Zeichenfolgenfeldern. Sie müssen die Zeichenfolgenfunktionen verwenden, die im Abschnitt Zeichenfolgenfunktionen beschrieben werden.
  • Wenn Sie ein Feld vom Typ "Double" in ein Feld vom Typ "Integer" umrechnen, wird dem Ausdruck automatisch die Funktion CAST hinzugefügt. Wenn Sie beispielsweise ein Double-Feld namens POP in ein Integer-Feld namens SAMPLE umrechnen, wird CAST(SAMPLE AS FLOAT) als Ausdruck angezeigt. Entfernen Sie die Funktion CAST nicht. Weitere Informationen zur Funktion finden Sie nachstehend unter CASTNumerische Funktionen.
  • Um ein Apostroph in die Zeichenfolge einzufügen, verwenden Sie zwei einzelne Anführungsstriche für das Apostroph, z. B. 'Nightingale''s'. Verwenden Sie kein doppeltes Anführungszeichen.

Funktionen

Neben einfachen Ausdrücken mit Operatoren können auch Funktionen zum Erstellen von SQL-Ausdrücken verwendet werden. Funktionen arbeiten mit Feldnamen, Literalen und anderen Funktionen. Beispiel: Sie müssen ein Double-Feld in TOTALPOP dividiert durch POP18 umrechnen. Wenn POP18 eines Features gleich Null ist, führt die Berechnung zu dem Fehler "Division durch Null". Dies kann wie nachfolgend beschrieben mit der Funktion NULLIF verhindert werden. Der Ausdruck muss TOTALPOP / NULLIF(POP18, 0) lauten.

Funktionen verwenden Argumente. In den folgenden Tabellen kann jedes Argument wie folgt lauten:

  • Ein Feldname, solange der Feldtyp mit dem Argumenttyp (Zeichenfolge, Zahl oder Datum) übereinstimmt.
  • Ein Literal wie 'Sailboat' (eine in einfache Anführungszeichen gesetzte Zeichenfolge), die Zahl 5, ein Datum im Format MM/TT/JJJJ hh:mm:ss oder JJJJ-MM-TT, das von einfachen Anführungszeichen umgeben ist.
  • Eine Funktion, die einen Wert des geeigneten Typs (Zeichenfolge, Zahl oder Datum) zurückgibt. Beispielsweise gibt FLOOR(POWER(SAMP_ERR, 0.5)) den größten Ganzzahlwert zurück, der kleiner oder gleich der Quadratwurzel von SAMP_ERR ist.

Die Beispiele in der Beschreibungsspalte der folgenden Tabellen verwenden zu Veranschaulichungszwecken literale Argumente. Sie können bei diesen Argumenten einen Feldnamen oder eine andere Funktion ersetzen.

Datumsfunktionen

An Datumsfeldern lassen sich einige Berechnungen vornehmen. Beispielsweise können Sie Zeit zu einem Datumsfeld addieren bzw. davon subtrahieren oder auch die Differenz zwischen zwei Datumsfeldern berechnen.

Bevor Sie mit Datumsfeldern arbeiten, sollten Sie diese wichtigen Hinweise lesen.

Zum Berechnen von Datumsfeldern können Sie beliebige Kombinationen von Datums- und Zahlenfeldern sowie Literalen verwenden. Bei der Anwendung von Datumsliteralen müssen Sie SQL-unterstützte Datumsformate verwenden.

Die folgenden Datumsfunktionen sind verfügbar:

FunktionBeschreibung

CURRENT_DATE()

Gibt das aktuelle Datum in UTC-Zeit zurück.

Der angezeigte Wert hängt von dem von Ihnen verwendeten Client ab. In ArcGIS Online werden Datumsangaben in der Zeitzone Ihrer Organisation oder Ihres Profils angezeigt.

CURRENT_TIME()

Gibt das aktuelle UTC-Datum und die UTC-Uhrzeit (Stunden, Minuten, Sekunden) zurück.

Der angezeigte Wert hängt von dem von Ihnen verwendeten Client ab. In ArcGIS Online wird die Uhrzeit in der lokalen Uhrzeit Ihrer Organisation oder Ihres Profils angezeigt.

CURRENT_TIMESTAMP()

Gibt das aktuelle UTC-Datum und die UTC-Uhrzeit (Stunden, Minuten, Sekunden, Millisekunden) zurück.

Der angezeigte Wert hängt von dem von Ihnen verwendeten Client ab. In ArcGIS Online wird die Uhrzeit in der lokalen Uhrzeit Ihrer Organisation oder Ihres Profils angezeigt.

EXTRACT(<unit> FROM <date>)

Gibt einen Teil (<unit>) des angegebenen Datums (<date>) zurück. Zu den möglichen <unit>-Werten zählen unter anderem year, month, day, hour und minute.

In den folgenden Beispielen werden verschiedene Werte aus dem Datum- und Uhrzeitwert 2016-12-21 15:11 extrahiert:

  • EXTRACT(MONTH FROM TIMESTAMP '2016-12-21 15:11:00'): Ergebnis ist 12.
  • EXTRACT(DAY FROM TIMESTAMP '2016-12-21 15:11:00'): Ergebnis ist 21.
  • EXTRACT(HOUR FROM TIMESTAMP '2016-12-21 15:11:00'): Ergebnis ist 15.

Numerische Funktionen

FunktionBeschreibung

ABS(<number>)

Gibt den absoluten (positiven) Wert der angegebenen Zahl zurück.

CAST(<number> AS FLOAT | INT)

Konvertiert eine Zahl in einen anderen Typ. FLOAT konvertiert die angegebene Zahl in einen Double-Wert und INT konvertiert sie in einen Integer.

Im ersten Beispiel unten wird die Zahl in eine ganze Zahl umgewandelt. Da es sich bei Ganzzahlen um ganze Zahlen handelt, ist das Ergebnis 1424. Im zweiten Beispiel wird eine Ganzzahl in eine Fließkommazahl umgewandelt. Das Ergebnis ist eine Zahl mit Dezimalstellen, also 1424,0.

  • CAST(1424.49 AS INT)
  • CAST(1424 AS FLOAT

CEILING(<number>)

Gibt die kleinste Ganzzahl zurück, die größer als oder gleich der angegebenen Zahl ist.

Im folgenden Beispiel wird 13 zurückgegeben.

CEILING(12.93)

COS(<number>)

Gibt den trigonometrischen Cosinus von <number> zurück, von dem angenommen wird, dass es sich um einen Winkel in Radianten handelt.

FLOOR(<number>)

Gibt die größte Ganzzahl zurück, die kleiner als oder gleich der angegebenen Zahl ist.

Im folgenden Beispiel wird 12 zurückgegeben.

FLOOR(12.93)

LOG(<number>)

Der natürliche Logarithmus der angegebenen Zahl.

LOG10(<number>)

Der Logarithmus zur Basis 10 der angegebenen Zahl.

MOD(<number>, <n>)

Gibt den Rest zurück, nachdem der Dividend (<Zahl>) durch den Divisor <n> dividiert wurde. Sowohl <n> als auch <Zahl> muss vom Typ "Integer" sein.

Hier einige Beispiele:

  • MOD(10, 4): Ergebnis ist 2.
  • MOD(CAST(DBLFIELD AS INT), 4): DBLFIELD ist ein Feld vom Typ "Double", sodass die Funktion CAST benötigt wird, um Werte vom Typ "Double" in den Typ "Integer" zu konvertieren.

NULLIF(<number>, <value>)

Gibt null zurück, wenn die angegebene Zahl gleich dem angegebenen Wert ist. NULLIF wird im Allgemeinen verwendet, um Fehler vom Typ "Division durch Null" zu vermeiden, indem <value> auf 0 gesetzt wird.

Wenn bei einer Berechnung eines der Argumente ein null-Feldwert ist, ist das Ergebnis der Berechnung null.

Beispiel: Sie müssen ein Double-Feld in TOTALPOP dividiert durch POP18 umrechnen. Wenn ein POP18-Wert eines Features gleich Null ist, führt die Berechnung zu dem Fehler "Division durch Null". Sie können einen Filter erstellen, um Datensätze auszublenden, bei denen POP18 gleich Null ist, und anschließend die Berechnung durchführen. Eine einfachere Option ist die Verwendung von NULLIF.

TOTALPOP / NULLIF(POP18, 0): Gibt null zurück, wenn POP18 gleich Null ist. Andernfalls wird der Wert TOTALPOP / POP18 zurückgegeben.

POWER(<number> , <y>)

Gibt den Wert der angegebenen Zahl potenziert mit der angegebenen Potenz (<y>) zurück.

Im folgenden Beispiel wird 32768 zurückgegeben.

POWER(8,5)

ROUND(<number> , <length>)

Rundet die angegebene Zahl auf die angegebene Länge.

Wenn Sie für <length> eine positive Zahl verwenden, wird die Zahl auf die Dezimalstelle rechts vom Dezimaltrennzeichen gerundet. Wenn <length> eine negative Zahl ist, wird die für <number> angegebene Zahl auf die Stelle links vom Dezimaltrennzeichen gerundet.

Im Folgenden finden Sie Beispiele:

  • ROUND(10.9934,2): Ergebnis ist 10,99.
  • ROUND(10.9964,2): Ergebnis ist 11,00.
  • ROUND(111.0,-2): Ergebnis ist 100,00.

SIN(<number>)

Gibt den trigonometrischen Sinus von <number> zurück, von dem angenommen wird, dass es sich um einen Winkel in Radianten handelt.

TAN(<number>)

Gibt den Tangens von <number> zurück, von dem angenommen wird, dass es sich um einen Winkel in Radianten handelt.

TRUNCATE(<number>,<decimal_place>)

Schneidet <number> an der angegebenen Dezimalstelle (<decimal_place>) ab.

Wenn <decimal_place> positiv ist, wird bis zur angegebenen Dezimalstelle gekürzt. Wenn <decimal_place> eine negative Zahl ist, wird <number> links vom Dezimaltrennzeichen gekürzt.

Im ersten Beispiel werden die Zahlen rechts der Dezimalstelle so abgeschnitten, dass nur zwei Ziffern vorhanden sind. Dies ergibt den Wert 111,99. Im zweiten Beispiel werden die Zahlen links der Dezimalstelle abgeschnitten, so dass sich der Wert 100,00 ergibt.

  • TRUNCATE(111.996,2)
  • TRUNCATE(111.996,-2)

Zeichenfolgenfunktion

FunktionBeschreibung

CAST(<string> AS DATE | TIME)

Konvertiert die Zeichenfolge in ein Datum oder eine Uhrzeit, wenn der Zeichenfolgenwert in einem unterstützten Format vorliegt.

Wenn die Zeichenfolge das Format "MM/TT/JJJJ hh:mm:ss" oder "JJJJ-MM-TT" hat, können Sie sie in ein Datum umwandeln. Wenn die Zeichenfolge das Format "HH:MM:SS" hat, können Sie sie in den Datentyp "Nur Zeit" (TIME) umwandeln.

Die folgende Zeichenfolge kann beispielsweise in ein Datum umgewandelt werden:

CAST('1988-05-30' AS DATE)

CHAR_LENGTH(<string>)

Gibt die Anzahl der Zeichen in der angegebenen Zeichenfolge zurück. Das Ergebnis ist ein Ganzzahlwert.

Die folgende Anweisung gibt beispielsweise 8 zurück:

CHAR_LENGTH('Redlands')

CONCAT(<string1>, <string2>)

Verbindet zwei Zeichenfolgewerte.

Es können nur zwei Zeichenfolgen bereitgestellt werden. Um mehr als zwei Zeichenfolgen zu verbinden, müssen aufeinanderfolgende CONCAT-Funktionen verschachtelt werden.

Das erste Beispiel unten verbindet die Buchstaben A und B. Das zweite Beispiel zeigt eine verschachtelte CONCAT-Funktion zur Verbindung von drei Zeichenfolgewerten, A, :, und B.

  • CONCAT('A', 'B'): Ergebnis ist 'AB'.
  • CONCAT('A', CONCAT(':', 'B')): Ergebnis ist 'A:B'.

NULL-Werte werden in eine leere Zeichenfolge konvertiert.

CURRENT_USER

Wird die CURRENT_USER-Funktion in einer Abfrage verwendet, funktioniert sie ähnlich wie eine Variable. Der Benutzername des Benutzers, der auf den gehosteten Feature-Layer oder die Sicht eines gehosteten Feature-Layers zugreift, wird ermittelt und in der Abfrage verwendet.

Wenn zum Beispiel der Benutzer "planner3" bei der Organisation angemeldet ist, um auf eine Sicht eines gehosteten Feature-Layers zuzugreifen, die die folgende Abfragedefinition enthält, werden nur Features, bei denen das Feld "staffmember" den Wert "planner3" enthält, an den verbundenen Benutzer zurückgegeben:

staffmember=current_user

Im nächsten Beispiel werden mehrere Werte im Feld "staffmember" gespeichert. Die folgende where-Klausel findet den aktuellen Benutzernamen im Textwert des Feldes "staffmember", auch wenn mehrere Benutzernamen im Feld gespeichert sind:

where=position(current_user in staffmember)>0

POSITION(<substring>, <string>)

Gibt die Position des ersten Vorkommnisses der angegebenen Teilzeichenfolge in der angegebenen Zeichenfolge zurück. Wenn die angegebene Teilzeichenfolge nicht gefunden wird, ist das Ergebnis 0.

Im ersten Beispiel unten ist das Ergebnis 5, da der erste Buchstabe (b) der Unterzeichenfolge (boat) der fünfte Buchstabe in der Zeichenfolge (Sailboat) ist. Im zweiten Beispiel ist das Ergebnis 0, da die Unterzeichenfolge (motor) in der Zeichenfolge nicht enthalten ist.

  • POSITION('boat', 'Sailboat')
  • POSITION('motor', 'Sailboat')

SUBSTRING(<string>, <start>, <length>)

Gibt einen Teil eines Zeichenfolgewertes zurück. <start> ist ein Ganzzahlindex, der angibt, wo die zurückgegebenen Zeichen beginnen, und <length> ist die Anzahl der Zeichen, die zurückgegeben werden sollen.

Beispiele:

  • SUBSTRING('Sailboat', 5, 4): Ergebnis ist 'boat'.
  • SUBSTRING('Sailboat', 1, 4): Ergebnis ist 'Sail'.
  • SUBSTRING('Sailboat', 5, 100): Ergebnis ist 'boat'.

TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>)

Gibt eine Zeichenfolge zurück, bei der alle vor- und nachgestellten Leerstellen in der angegebenen Zeichenfolge entfernt wurden.

Im folgenden Beispiel ist vor und nach der Zeichenfolge "San Bernardino" ein Leerzeichen vorhanden. Das Schlüsselwort BOTH wird verwendet, um die Leerzeichenfolge (angegeben durch zwei einfache Anführungszeichen mit einem Leerzeichen dazwischen) vom Anfang und Ende der Textzeichenfolge zu entfernen:

TRIM(BOTH ' ' FROM ' San Bernardino ')

Dies gibt die Zeichenfolge 'San Bernardino' zurück.

UPPER(<string>)

Gibt eine Zeichenfolge zurück, bei der alle Zeichen in Großbuchstaben konvertiert wurden.

In diesem Beispiel werden alle Buchstaben in der Zeichenfolge "Sailboat" in Großbuchstaben umgewandelt. Das Ergebnis ist die Zeichenfolge 'SAILBOAT':

UPPER('Sailboat')

LOWER(<string>)

Gibt eine Zeichenfolge zurück, bei der alle Zeichen in Kleinbuchstaben konvertiert wurden.

Im nächsten Beispiel wird 'sailboat' zurückgegeben:

LOWER('Sailboat')