In diesem Thema werden die Elemente von allgemeinen Auswahlabfragen in ArcGIS beschrieben. Abfrageausdrücke in ArcGIS verwenden SQL.
Vorsicht:
Die SQL-Syntax funktioniert nicht bei der Berechnung von Feldern mit dem Fenster Feldberechnung.
Allgemeine Abfragen: Suchen von Zeichenfolgen
Zeichenfolgen müssen in Abfragen immer in einfache Anführungszeichen gesetzt werden, z. B.:
STATE_NAME = 'California'
Bei Zeichenfolgen in Ausdrücken muss die Groß-/Kleinschreibung beachtet werden, es sei denn, die Ausführung erfolgt in Geodatabases in Microsoft SQL Server. Um eine Suche in anderen Datenquellen durchzuführen, bei der die Groß- bzw. Kleinschreibung nicht berücksichtigt wird, können Sie die Groß- und Kleinschreibung aller Werte mit einer SQL-Funktion vereinheitlichen. Verwenden Sie für dateibasierte Datenquellen wie File-Geodatabases oder Shapefiles die Funktion UPPER oder LOWER, um die Groß-/Kleinschreibung für eine Auswahl festzulegen. Durch den folgenden Ausdruck wird beispielsweise der Bundesstaat ausgewählt, dessen Name als 'Rhode Island' oder 'RHODE ISLAND' gespeichert ist:
UPPER(STATE_NAME) = 'RHODE ISLAND'
Wenn die Zeichenfolge ein einzelnes Anführungszeichen enthält, müssen Sie zunächst ein weiteres Anführungszeichen als Escape-Zeichen einfügen, z. B.:
NAME = 'Alfie''s Trough'
Um nach einer Teilzeichenfolge zu suchen, verwenden Sie den Operator LIKE (anstelle des Operators "Gleich"). Durch diesen Ausdruck werden z. B. die US-Bundesstaaten Mississippi und Missouri ausgewählt:
STATE_NAME LIKE 'Miss%'
Das Prozentzeichen (%) kann für eine beliebige Anzahl von Zeichen oder kein Zeichen stehen. Wenn Sie bei der Suche ein Platzhalterzeichen verwenden möchten, das für ein einzelnes Zeichen steht, verwenden Sie einen Unterstrich (_). Durch den folgenden Ausdruck werden beispielsweise die Zeichenfolgen "Catherine Smith" und "Katherine Smith" gefunden:
OWNER_NAME LIKE '_atherine Smith'
Sie können die Operatoren "Größer als" (>), "Kleiner als" (<), "Größer gleich" (>=), "Kleiner gleich" (<=), "ungleich" (<>) und BETWEEN verwenden, um Zeichenfolgenwerte basierend auf der Sortierreihenfolge auszuwählen. Durch diesen Ausdruck wird beispielsweise in einem Coverage nach allen Städten gesucht, deren Namen mit den Buchstaben M bis Z beginnen:
CITY_NAME >= 'M'
Zum Formatieren von Zeichenfolgen können Zeichenfolgen-Funktionen verwendet werden. Durch die Funktion LEFT wird zum Beispiel eine bestimmte Anzahl von Zeichen links von der Zeichenfolge zurückgegeben. Durch die folgende Beispielabfrage werden alle Bundesstaaten abgerufen, die mit dem Buchstaben "A" beginnen:
LEFT(STATE_NAME,1) = 'A'
Eine Liste der unterstützten Funktionen finden Sie in der Dokumentation zu Ihrem Datenbankmanagementsystem (DBMS).
Allgemeine Ausdrücke: Suche nach NULL-Werten
Verwenden Sie das Schlüsselwort NULL zum Auswählen von Features und Datensätzen, die für das angegebene Feld NULL-Werte aufweisen. Dem Schlüsselwort NULL geht stets IS oder IS NOT voraus. Mit der folgenden Abfrage werden beispielsweise Städte gesucht, deren Einwohnerzahl für das Jahr 1996 nicht eingegeben wurde:
POPULATION IS NULL
Sie können auch mit der folgenden Abfrage Städte suchen, deren Einwohnerzahl für das Jahr 1996 eingegeben wurde:
POPULATION96 IS NOT NULL
Allgemeine Ausdrücke: Suchen nach Zahlen
Als Dezimaltrennzeichen wird unabhängig von Gebietsschema oder Ländereinstellungen immer ein Dezimalpunkt (.) verwendet. Ein Komma darf in einem Ausdruck weder als Dezimal- noch als Tausendertrennzeichen verwendet werden.
In Abfragen nach Zahlenwerten können Sie die Operatoren "Gleich" (=), "Ungleich" (<>), "Größer als " (>), "Kleiner als" (<), "Größer gleich" (>=), "Kleiner gleich" (<=) und "BETWEEN" verwenden, z. B.:
POPULATION >= 5000
Zum Formatieren von Zahlen können numerische Funktionen verwendet werden. Mit der Funktion ROUND kann eine Zahl in einer File-Geodatabase beispielsweise auf eine bestimmte Anzahl von Dezimalstellen gerundet werden:
ROUND(SQKM,0) = 500
Eine Liste der unterstützten numerischen Funktionen finden Sie in der DBMS-Dokumentation.
Datum und Uhrzeit
Allgemeine Regeln und Ausdrücke
In Geodatabase-Datenquellen werden Datumsangaben in einem Datumsfeld gespeichert. In Shapefiles jedoch nicht. Daher umfassen die meisten der unten aufgeführten Abfrage-Syntaxbeispiele eine Uhrzeit-Referenz. In einigen Fällen kann die Abfrage ohne Uhrzeit gestellt werden, wenn bekannt ist, dass das Feld nur Datumsangaben enthält. In anderen Fällen muss die Abfrage die Uhrzeit enthalten, da sonst ein Syntaxfehler auftritt.
Bei der Suche nach Datumsfeldern muss sorgfältig die Syntax beachtet werden, die Ihre Datenquelle verlangt. Wenn Sie eine Datumsabfrage im Klausel-Modus der Abfrageerstellung definieren, wird automatisch die korrekte Syntax für Sie generiert. Im Folgenden erhalten Sie ein Beispiel für eine Abfrage, die alle Datensätze am oder nach dem 1. Januar 2011 für eine File-Geodatabase-Datenquelle zurückgibt:
INCIDENT_DATE >= date '2011-01-01 00:00:00'
Hinweis:
Datumsangaben werden in der zugrunde liegenden Datenbank in Bezug auf den 30. Dezember 1899, 00:00:00 Uhr gespeichert. Dies gilt für alle hier aufgeführten Datenquellen.
In diesem Abschnitt werden nur Abfragen von Datumsangaben, nicht jedoch von Uhrzeitangaben erläutert. Wenn eine andere Uhrzeit als 00:00:00 mit den Datumsangaben gespeichert wird (z. B. 12. Januar 1999, 04:00:00), wird der Datensatz bei einer Abfrage des Datums allein nicht zurückgegeben. Wenn Sie für ein Datums-/Uhrzeitfeld nur ein Datum angeben, werden für die Uhrzeit Nullen verwendet und daher nur die Datensätze abgerufen, deren Uhrzeit "12:00:00 AM" lautet.
In der Attributtabelle werden das Datum und die Uhrzeit in einem benutzerfreundlichen, auf den Ländereinstellungen basierenden Format anstatt im Format der zugrunde liegenden Datenbank angezeigt. In den meisten Fällen ist dies akzeptabel, hat jedoch auch bestimmte Nachteile:
- Die in der SQL-Abfrage angezeigte Zeichenfolge hat möglicherweise nur wenig Ähnlichkeit mit dem in der Tabelle angezeigten Wert. Dies ist insbesondere dann der Fall, wenn Uhrzeitangaben betroffen sind. Wenn beispielsweise Ländereinstellungen für die USA festgelegt sind, wird eine im Format "00:00:15" eingegebene Uhrzeit in der Attributtabelle als "12:00:15 AM" angezeigt. Die Abfragesyntax lautet in diesem Fall "Datefield = '1899-12-30 00:00:15'".
- Die Attributtabelle erhält erst beim Speichern der Änderungen Informationen darüber, welche Datenquelle zugrunde liegt. Es wird zunächst versucht, den eingegebenen Wert so zu formatieren, dass er dem eigenen Format entspricht. Beim Speichern der Bearbeitungen wird der resultierende Wert dann so angepasst, dass er der Datenbank entspricht. Aus diesem Grund können Sie Uhrzeitangaben in ein Shapefile eingeben, die jedoch beim Speichern der Bearbeitungen gelöscht werden. Das Feld enthält dann den Wert "1899-12-30", der als "12:00:00 AM" oder je nach den Ländereinstellungen ähnlich angezeigt wird.
Datumssyntax für Enterprise-Geodatabases
Oracle
Datefield = date 'yyyy-mm-dd'
Beachten Sie, dass keine Datensätze zurückgegeben werden, wenn die Zeit nicht NULL ist.
In Oracle können Datumsangaben alternativ auch mit folgendem Format abgefragt werden:
Datefield = TO_DATE('yyyy-mm-dd hh:mm:ss','YYYY-MM-DD HH24:MI:SS')
Mit dem zweiten Parameter "YYYY-MM-DD HH24:MI:SS" wird das Format für die Abfrage beschrieben. Eine tatsächliche Abfrage sieht dann folgendermaßen aus:
Datefield = TO_DATE('2003-01-08 14:35:00','YYYY-MM-DD HH24:MI:SS')
Sie können auch eine kürzere Version verwenden:
TO_DATE('2003-11-18','YYYY-MM-DD')
Auch in diesem Fall werden keine Datensätze zurückgegeben, deren Uhrzeitangaben nicht NULL sind.
SQL Server
Datefield = 'yyyy-mm-dd hh:mm:ss'
Der Teil "hh:mm:ss" der Abfrage kann weggelassen werden, wenn in den Datensätzen keine Uhrzeit festgelegt ist.
Alternatives Format:
Datefield = 'mm/dd/yyyy'
IBM Db2
Datefield = TO_DATE('yyyy-mm-dd hh:mm:ss','YYYY-MM-DD HH24:MI:SS')
Der Teil "hh:mm:ss" der Abfrage kann nicht weggelassen werden, auch wenn er "00:00:00" entspricht.
PostgreSQL
Datefield = TIMESTAMP 'YYYY-MM-DD HH24:MI:SS' Datefield = TIMESTAMP 'YYYY-MM-DD'
Geben Sie bei Abfragen mit dem Operator "gleich" den vollständigen Zeitstempel an. Andernfalls werden keine Datensätze zurückgegeben. Die Abfrage für die folgenden Anweisungen kann erfolgreich ausgeführt werden, wenn die abgefragte Tabelle Datensätze enthält, die exakt den folgenden Zeitstempeln entsprechen: 2007-05-29 00:00:00 oder 2007-05-29 12:14:25:
select * from table where date = '2007-05-29 00:00:00';
oder
select * from table where date = '2007-05-29 12:14:25';
Wenn Sie Operatoren wie "größer als", "kleiner als", "größer oder gleich" oder "kleiner oder gleich" verwenden, muss die Zeit nicht festgelegt werden; Sie können dies jedoch tun, wenn Sie Wert auf Präzision legen. Sie können beide nachfolgend angegebenen Anweisungen verwenden:
select * from table where date < '2007-05-29';
select * from table where date < '2007-05-29 12:14:25';
File-Geodatabase, Shapefiles, Coverages und andere dateibasierte Datenquellen
Datefield = date 'yyyy-mm-dd'
File-Geodatabases unterstützen die Verwendung einer Zeitangabe im Datumsfeld, daher kann dem Ausdruck Folgendes hinzugefügt werden:
Datefield = date 'yyyy-mm-dd hh:mm:ss'
Shapefiles und Coverages unterstützen die Verwendung einer Zeit im Datumsfeld nicht.
Hinweis:
Von der File-Geodatabase verwendetes SQL basiert auf dem SQL-92-Standard.
Bekannte Einschränkungen
Die Abfrage nach einem Datum im linken Teil (erste Tabelle) von zwei Join-Tabellen kann nur mit dateibasierten Datenquellen, z. B. File-Databases, Shapefiles und DBF-Tabellen, durchgeführt werden. Es gibt jedoch einen möglichen Workaround zum Arbeiten mit nicht dateibasierten Daten (z. B. Enterprise-Daten), wie unten beschrieben.
Die Abfrage eines Datums im linken Teil von zwei verbundenen Tabellen ist nur erfolgreich, wenn Sie die eingeschränkte Version von SQL verwenden, die für dateibasierte Datenquellen entwickelt wurde. Wenn Sie nicht eine solche Datenquelle verwenden, können Sie die Verwendung dieses Formats im Ausdruck erzwingen. Dazu stellen Sie sicher, dass sich der Abfrageausdruck auf Felder aus mehr als einer der verbundenen Tabellen bezieht. Wenn zum Beispiel eine Feature-Class und eine Tabelle (FC1 und Table1) verbunden sind und beide aus einer Enterprise-Geodatabase stammen, tritt bei den folgenden Ausdrücken ein Fehler auf oder es werden keine Daten zurückgegeben:
FC1.date = date #01/12/2001# FC1.date = date '01/12/2001'
Eine erfolgreiche Abfrage kann z. B. so aussehen:
FC1.date = date '01/12/2001' and Table1.OBJECTID > 0
Da sich die Abfrage auf Felder aus beiden Tabellen bezieht, wird die eingeschränkte SQL-Version verwendet. In diesem Ausdruck ist "Table1.OBJECTID" bei Datensätzen, die während der Verbindungserstellung übereingestimmt haben, immer > 0. Somit hat dieser Ausdruck für alle Zeilen, die Verbindungsübereinstimmungen enthalten, den Wert "true".
Um sicherzustellen, dass jeder Datensatz mit "FC1.date = date '01/12/2001'" ausgewählt wird, verwenden Sie die folgende Abfrage:
FC1.date = date '01/12/2001' and (Table1.OBJECTID IS NOT NULL OR Table1.OBJECTID IS NULL)
Mit dieser Abfrage werden alle Datensätze mit "FC1.date = date '01/12/2001'" ausgewählt, egal ob es für die einzelnen Datensätze eine Verbindungsübereinstimmung gab oder nicht.
Kombinieren von Ausdrücken
Zusammengesetzte Ausdrücke können durch die Kombination mehrerer Ausdrücke durch die Operatoren AND und OR erstellt werden. Wenn Sie beispielsweise alle Häuser mit mehr als 1.500 Quadratfuß Wohnfläche und einer Garage für drei oder mehr Autos auswählen möchten, verwenden Sie folgenden Ausdruck:
AREA > 1500 AND GARAGE > 3
Bei Verwendung des Operators OR muss mindestens eine der Seiten des durch OR getrennten Ausdrucks wahr sein, damit der Datensatz ausgewählt wird, z. B.:
RAINFALL < 20 OR SLOPE > 35
Verwenden Sie den Operator NOT zu Beginn eines Ausdrucks, um Features oder Datensätze zu suchen, die dem angegebenen Ausdruck nicht entsprechen, z. B.:
NOT STATE_NAME = 'Colorado'
NOT-Ausdrücke können mithilfe von AND und OR kombiniert werden. Mit dem folgenden Ausdruck werden beispielsweise alle Bundesstaaten in Neuengland außer Maine ausgewählt:
SUB_REGION = 'New England' AND NOT STATE_NAME = 'Maine'
Berechnungen
Berechnungen können mit den folgenden arithmetischen Operatoren in Ausdrücke einbezogen werden: +, -, * und /. Berechnungen können sich aus Feldern und Zahlen zusammensetzen, z. B.:
AREA >= PERIMETER * 100
Berechnungen können darüber hinaus auch zwischen Feldern ausgeführt werden. Um z. B. Länder zu suchen, die eine Bevölkerungsdichte kleiner oder gleich 25 Menschen pro Quadratmeile aufweisen, können Sie den folgenden Ausdruck verwenden:
POP1990 / AREA <= 25
Operator-Priorität
Bei der Auswertung von Ausdrücken werden Standardregeln für die Operator-Priorität angewendet. Beispielsweise wird der in Klammern eingeschlossene Teil eines Ausdrucks vor dem Teil ausgewertet, der nicht in Klammern eingeschlossen ist.
HOUSEHOLDS > MALES * (POP90_SQMI + AREA)
Sie können im SQL-Bearbeitungsmodus Klammern hinzufügen, indem Sie sie eingeben oder mithilfe der Befehle "Gruppieren" oder "Gruppierung aufheben" im Klausel-Modus hinzufügen oder entfernen.
Unterabfragen
Eine Unterabfrage ist eine in einer anderen Abfrage geschachtelte Abfrage. Unterabfragen werden nur von Geodatabase-Datenquellen unterstützt. Sie können sie verwenden, um Prädikate oder Aggregatfunktionen einzusetzen oder um Daten mit Werten in einer anderen Tabelle zu vergleichen. Verwenden Sie dazu die Schlüsselwörter "IN" und "ANY". Durch die folgende Abfrage werden beispielsweise nur die Länder abgerufen, die nicht in der Tabelle "indep_countries" aufgeführt sind:
COUNTRY_NAME NOT IN (SELECT COUNTRY_NAME FROM indep_countries)
Hinweis:
Coverages, Shapefiles und andere nicht aus Geodatabases stammende dateibasierte Datenquellen unterstützen keine Unterabfragen. Unterabfragen, die im Zusammenhang mit versionierten Enterprise-Feature-Classes und -Tabellen ausgeführt werden, geben keine in den Deltatabellen gespeicherten Features zurück. File-Geodatabases bieten nur eingeschränkte Unterstützung für Unterabfragen (wie in diesem Abschnitt beschrieben), während Enterprise-Geodatabases uneingeschränkte Unterstützung bieten. Weitere Informationen über sämtliche Unterabfragenoptionen von Enterprise-Geodatabases finden Sie in der DBMS-Dokumentation.
Durch die folgende Abfrage werden die Features mit einem GDP2006 größer als GDP2005 aus allen Features in der Tabelle "countries" abgerufen:
GDP2006 > (SELECT MAX(GDP2005) FROM countries)
Die Unterstützung von Unterabfragen in File-Geodatabases ist auf Folgendes beschränkt:
- Skalar-Unterabfragen mit Vergleichsoperatoren. Eine Skalar-Unterabfrage gibt einen einzigen Wert zurück, z. B.:
GDP2006 > (SELECT MAX(GDP2005) FROM countries)
Für File-Geodatabases können die Funktionen AVG, COUNT, MIN, MAX und SUM nur in Skalar-Unterabfragen verwendet werden. - EXISTS-Prädikat, z. B.:
EXISTS (SELECT * FROM indep_countries WHERE COUNTRY_NAME = 'Mexico')
Operatoren
Folgende Liste enthält alle Abfrageoperatoren, die in File-Geodatabases, Shapefiles, Coverages und anderen dateibasierten Datenquellen unterstützt werden. Sie werden auch von Enterprise-Geodatabases unterstützt. Diese Datenquellen erfordern jedoch möglicherweise eine andere Syntax. Zusätzlich zu den unten aufgeführten Operatoren unterstützen Enterprise-Geodatabases weitere Optionen. Informationen hierzu finden Sie in der DBMS-Dokumentation.
Arithmetische Operatoren
Arithmetische Operatoren werden zum Addieren, Subtrahieren, Multiplizieren und Dividieren von numerischen Werten verwendet.
Operator | Beschreibung |
---|---|
* | Arithmetischer Operator für die Multiplikation |
/ | Arithmetischer Operator für die Division |
+ | Arithmetischer Operator für die Addition |
- | Arithmetischer Operator für die Subtraktion |
Vergleichsoperatoren
Vergleichsoperatoren werden zum Vergleichen eines Ausdrucks mit einem anderen verwendet.
Operator | Beschreibung |
---|---|
< | Das Kleiner-als-Zeichen Es kann mit Zeichenfolgen (Vergleich beruht dann auf der alphabetischen Reihenfolge), Zahlen und Datumsangaben verwendet werden. |
<= | Das Kleiner-gleich-Zeichen Es kann mit Zeichenfolgen (Vergleich beruht dann auf der alphabetischen Reihenfolge), Zahlen und Datumsangaben verwendet werden. |
<> | Das Ungleich-Zeichen Es kann mit Zeichenfolgen (Vergleich beruht dann auf der alphabetischen Reihenfolge), Zahlen und Datumsangaben verwendet werden. |
> | Das Größer-als-Zeichen Es kann mit Zeichenfolgen (Vergleich beruht dann auf der alphabetischen Reihenfolge), Zahlen und Datumsangaben verwendet werden. |
>= | Das Größer-gleich-Zeichen Es kann mit Zeichenfolgen (Vergleich beruht dann auf der alphabetischen Reihenfolge), Zahlen und Datumsangaben verwendet werden. |
[NOT] BETWEEN x AND y | Mit diesem Ausdruck wird ein Datensatz ausgewählt, der einen Wert größer oder gleich x und kleiner oder gleich y aufweist. Wenn dem Ausdruck NOT vorangestellt ist, wird ein Datensatz mit einem Wert außerhalb des angegebenen Bereichs ausgewählt. Mit diesem Ausdruck werden z. B. alle Datensätze mit einem Wert größer oder gleich 1 und kleiner oder gleich 10 ausgewählt: OBJECTID BETWEEN 1 AND 10 Dies entspricht dem folgenden Ausdruck: OBJECTID >= 1 AND OBJECTID <= 10 Der Ausdruck mit BETWEEN ist jedoch besser geeignet, wenn Sie ein indiziertes Feld abfragen. |
[NOT] EXISTS | Gibt TRUE zurück, wenn die Unterabfrage mindestens einen Datensatz enthält; andernfalls wird FALSE zurückgegeben. Der folgende Ausdruck gibt beispielsweise TRUE zurück, wenn das Feld OJBECTID einen Wert von 50 enthält: EXISTS (SELECT * FROM parcels WHERE OBJECTID = 50) EXISTS wird nur in File- und Enterprise-Geodatabases unterstützt. |
[NOT] IN | Hiermit wird ein Datensatz ausgewählt, der eine von mehreren Zeichenfolgen in einem Feld aufweist. Wenn dem Ausdruck NOT vorangestellt ist, wird ein Datensatz ausgewählt, der in keinem Feld die angegebenen Zeichenfolgen bzw. Werte aufweist. Mit dem folgenden Ausdruck wird beispielsweise nach vier verschiedenen Namen von Bundesstaaten gesucht: STATE_NAME IN ('Alabama', 'Alaska', 'California', 'Florida') |
IS [NOT] NULL | Hiermit wird ein Datensatz ausgewählt, der einen NULL-Wert für das angegebene Feld aufweist. Wenn NULL nach NOT steht, wird ein Datensatz mit einem beliebigen Wert im angegebenen Feld ausgewählt. |
x [NOT] LIKE y [ESCAPE 'Escape-Zeichen'] | Um nach einer Teilzeichenfolge zu suchen, verwenden Sie den Operator LIKE (anstelle des Operators "Gleich") mit Platzhaltern. Das Prozentzeichen (%) kann für eine beliebige Anzahl von Zeichen oder kein Zeichen stehen. Wenn Sie bei der Suche ein Platzhalterzeichen verwenden möchten, das für ein einzelnes Zeichen steht, verwenden Sie einen Unterstrich (_). Mit der Funktion CAST können Sie auf Daten zugreifen, die keine Zeichendaten darstellen. Diese Abfrage gibt beispielsweise Zahlen aus dem Feld SCORE_INT zurück, die mit 8 beginnen: CAST (SCORE_INT AS VARCHAR(10)) LIKE '8%' Soll die Suchzeichenfolge ein Prozentzeichen oder einen Unterstrich enthalten, bestimmen Sie mit dem Schlüsselwort "ESCAPE" ein anderes Zeichen als das Escape-Zeichen. Dadurch wird angegeben, dass ein echtes Prozentzeichen oder ein echter Unterstrich unmittelbar folgt. Dieser Ausdruck gibt beispielsweise alle Zeichenfolgen mit "10 %" wie "10 % RABATT" oder "A10 %" zurück. AMOUNT LIKE '%10$%%' ESCAPE '$' |
Logische Operatoren
Operator | Beschreibung |
---|---|
AND | Hiermit werden zwei Bedingungen kombiniert. Wenn beide zutreffen, wird ein Datensatz ausgewählt. Wenn Sie beispielsweise ein beliebiges Haus mit mehr als 1.500 Quadratfuß und einer Garage für mehr als zwei Autos auswählen möchten, verwenden Sie folgenden Ausdruck: AREA > 1500 AND GARAGE > 2 |
OR | Hiermit werden zwei Bedingungen kombiniert. Wenn mindestens eine zutrifft, wird ein Datensatz ausgewählt. Wenn Sie beispielsweise ein beliebiges Haus mit mehr als 1.500 Quadratfuß oder einer Garage für mehr als zwei Autos auswählen möchten, verwenden Sie folgenden Ausdruck: AREA > 1500 OR GARAGE > 2 |
NOT | Hiermit wird ein Datensatz ausgewählt, der nicht mit dem Ausdruck übereinstimmt. Mit folgendem Ausdruck werden beispielsweise alle US-amerikanischen Bundesstaaten außer Kalifornien ausgewählt: NOT STATE_NAME = 'California' |
Operatoren für Zeichenfolgen
Operator | Beschreibung |
---|---|
|| | Eine Zeichenfolge zurückgeben, die das Ergebnis der Verkettung von mindestens zwei Zeichenfolgenausdrücken ist. FIRST_NAME || MIDDLE_NAME || LAST_NAME |
Funktionen
Im Folgenden finden Sie eine vollständige Liste der Funktionen, die von File-Geodatabases, Shapefiles, Coverages und anderen dateibasierten Datenquellen unterstützt werden. Die Funktionen werden auch von Enterprise-Geodatabases unterstützt. Diese Datenquellen erfordern jedoch möglicherweise eine andere Syntax oder andere Funktionsnamen. Zusätzlich zu den unten aufgeführten Funktionen unterstützen Enterprise-Geodatabases weitere Optionen. Informationen hierzu finden Sie in der DBMS-Dokumentation.
Datumsfunktionen
Funktion | Beschreibung |
---|---|
CURRENT_DATE | Das aktuelle Datum wird zurückgegeben. |
EXTRACT(extract_field FROM extract_source) | Liefert als Rückgabe den extract_field-Teil von extract_source. Beim Argument extract_source handelt es sich um einen Datums-/Uhrzeitausdruck. Beim Argument extract_field kann es sich um eines der folgenden Schlüsselwörter handeln: YEAR, MONTH, DAY, HOUR, MINUTE oder SECOND. |
CURRENT TIME | Gibt die aktuelle Uhrzeit zurück. |
Zeichenfolgenfunktion
Bei den Argumenten, die als string_exp aufgeführt sind, kann es sich um den Namen einer Spalte, ein Zeichenfolgenliteral oder das Ergebnis einer anderen Skalarfunktion handeln, in der der zugrunde liegende Datentyp als Zeichentyp dargestellt werden kann.
Bei Argumenten, die als character_exp aufgeführt sind, handelt es sich um Zeichenfolgen mit variabler Länge.
Bei Argumenten, die als start oder length aufgeführt sind, kann es sich um ein numerisches Literal oder das Ergebnis einer anderen Skalarfunktion handeln, wobei der zugrunde liegende Datentyp einen numerischen Typ darstellen kann.
Diese Zeichenfolge-Funktionen basieren auf 1, d. h., beim ersten Zeichen der Zeichenfolge handelt es sich um das Zeichen 1.
Funktion | Beschreibung |
---|---|
CHAR_LENGTH(string_exp) | Gibt die Länge des String-Ausdrucks in Zeichen zurück. |
LOWER(string_exp) | Gibt einen String zurück, der mit string_exp identisch ist und in dem alle Großbuchstaben in Kleinbuchstaben konvertiert wurden. |
POSITION(character_exp IN character_exp) | Gibt die Position des ersten Zeichenausdrucks im zweiten Zeichenausdruck zurück. Das Ergebnis ist eine genaue Zahl mit einer implementationsdefinierten Genauigkeit und der Anzahl der Dezimalstellen von 0. |
SUBSTRING(string_exp FROM start FOR length) | Gibt eine aus string_exp abgeleitete Zeichenfolge zurück. Diese Zeichenfolge beginnt an der durch start festgelegten Zeichenposition und weist eine Länge von length Zeichen auf. |
TRIM(BOTH | LEADING | TRAILING trim_character FROM string_exp) | Gibt string_exp zurück, wobei trim_character von den führenden, nachstehenden oder beiden Enden des Strings entfernt wurde. |
UPPER(string_exp) | Gibt einen String zurück, der mit string_exp identisch ist und in dem alle Kleinbuchstaben in Großbuchstaben konvertiert wurden. |
Numerische Funktionen
Bei allen Zahlenfunktionen wird ein numerischer Wert zurückgegeben.
Bei den Argumenten, die als numeric_exp, float_exp oder integer_exp aufgeführt sind, kann es sich um einen Namen einer Spalte, das Ergebnis einer anderen Skalarfunktion oder ein "numeric-literal" handeln, wobei der zugrunde liegende Datentyp als numerischer Typ dargestellt werden kann.
Funktion | Beschreibung |
---|---|
ABS(numeric_exp) | Gibt den absoluten Wert von numeric_exp zurück. |
ACOS(float_exp) | Gibt den Arkuskosinus von float_exp als Winkel, ausgedrückt in Radianten, zurück. |
ASIN(float_exp) | Gibt den Arkussinus von float_exp als Winkel, ausgedrückt in Radianten, zurück. |
ATAN(float_exp) | Gibt den Arkustangens von float_exp als Winkel, ausgedrückt in Radianten, zurück. |
CEILING(numeric_exp) | Gibt den kleinsten Integer-Wert zurück, der größer als oder gleich numeric_exp ist. |
COS(float_exp) | Gibt den Kosinus von float_exp zurück, wobei float_exp ein in Radianten ausgedrückter Winkel ist. |
FLOOR(numeric_exp) | Gibt den größten Integer-Wert, der kleiner als oder gleich numeric_exp ist, zurück. |
LOG(float_exp) | Gibt den natürlichen Logarithmus von float_exp zurück. |
LOG10(float_exp) | Gibt den Logarithmus zur Basis 10 von float_exp zurück. |
MOD(integer_exp1, integer_exp2) | Gibt den Rest von integer_exp1 dividiert durch integer_exp2 zurück. |
POWER(numeric_exp, integer_exp) | Gibt den Wert von numeric_exp potenziert mit integer_exp zurück. |
ROUND(numeric_exp, integer_exp) | Gibt numeric_exp auf integer_exp Stellen rechts neben dem Dezimaltrennzeichen aufgerundet zurück. Wenn integer_exp negativ ist, wird numeric_exp auf |integer_exp| Stellen links neben dem Dezimaltrennzeichen gerundet. |
SIGN(numeric_exp) | Gibt einen Indikator des Vorzeichens von numeric_exp zurück. Wenn numeric_exp kleiner als Null ist, wird "-1" zurückgegeben. Wenn numeric_exp gleich Null ist, wird 0 zurückgegeben. Wenn numeric_exp größer als Null ist, wird "1" zurückgegeben. |
SIN(float_exp) | Gibt den Sinus von float_exp zurück, wobei float_exp ein in Radianten ausgedrückter Winkel ist. |
TAN(float_exp) | Gibt den Tangens von float_exp zurück, wobei float_exp ein in Radianten ausgedrückter Winkel ist. |
TRUNCATE(numeric_exp, integer_exp) | Gibt numeric_exp auf integer_exp Stellen rechts neben dem Dezimaltrennzeichen verkürzt zurück. Wenn integer_exp negativ ist, wird numeric_exp auf |integer_exp| Stellen links neben dem Dezimaltrennzeichen abgeschnitten. |
Funktion "CAST"
Mit der Funktion CAST wird ein Wert in einen angegebenen Datentyp konvertiert. Folgende Syntax wird verwendet:
CAST(exp AS data_type [(length)])
Beispiel:
CAST (SCORE_INT AS VARCHAR(10))
Das Argument exp kann den Namen einer Spalte, das Ergebnis einer anderen Skalarfunktion oder einen Literal darstellen. Der Datentyp (Data_type) kann eines der folgenden Schlüsselwörter sein, die in Groß- oder Kleinbuchstaben angegeben werden können: CHAR, VARCHAR, INTEGER, SMALLINT, REAL, DOUBLE, DATE, TIME, DATETIME, NUMERIC oder DECIMAL.
Weitere Informationen zur Funktion "CAST" finden Sie unter CAST und CONVERT.