Ausdrücke
SQL-Ausdrücke bieten formelle Methoden zum Auswerten, Transformieren und Vergleichen von Werten.SQL-Ausdrücke können Tabellenspalten, Variablen, Konstanten, Literale, andere Statements und Prädikate sowie andere Ausdrücke enthalten.Folgend die vollständige Liste möglicher Elemente.
- Spaltenname
-
Kennung einer Spalte aus einer angegebenen Tabelle, die in Auswertungen oder als Suchbedingung verwendet wird.Eine Spalte des Array-Typs kann kein Element innerhalb eines Ausdrucks sein, es sei denn sie wird mit dem
IS [NOT] NULL
-Prädikat verwendet. - Array-Element
-
Ein Ausdruck kann einen Verweis auf ein Array-Element enthalten.
- Arithmetische Operatoren
-
Die Zeichen
+
,-
,*
,/
werden verwendet um Berechnungen durchzuführen. - Verkettungsoperator
-
Der Operator
||
(“Doppel-Pipe”) wird verwendet um Strings zu verketten. - Logische Operatoren
-
Die reservierten Wörter
NOT
,AND
sowieOR
werden verwendet um einfache Suchbedingungen oder komplexere Behauptungen zu erstellen. - Vergleichsoperatoren
-
Die Zeichen
=
,<>
,!=
,~=
,^=
,<
,<=
,>
,>=
,!<
,~<
,^<
,!>
,~>
und^>
- Vergleichsprädikate
-
LIKE
,STARTING WITH
,CONTAINING
,SIMILAR TO
,BETWEEN
,IS [NOT] NULL
undIS [NOT] DISTINCT FROM
- Existenzprädikate
-
Prädikate, die für die Existenzprüfung von Werten Verwendung finden.Das Prädikat
IN
kann sowohl innerhalb von Listen kommagetrennter Konstanten als auch mit Unterabfragen, die nur eine Spalte zurückgeben, verwendet werden.Die PrädikateEXISTS
,SINGULAR
,ALL
,ANY
undSOME
können nur mit Unterabfragen verwendet werden. - Konstante oder Litaral
-
In Apostrophen eingeschlossene Zahlen oder String-Literale, Boolesche Werte
TRUE
,FALSE
undUNKOWN
, `NULL - Datetimeliterale
-
Ein Ausdruck, ähnlich zu Zeichenketten, eingeschlossen in Apostrophs, der als Datum, Zeit oder Zeitstempel interpretiert wird.Datetimeliterale können Zeichen- und Ziffernfolgen sein, z. B.
TIMESTAMP '25.12.2016 15:30:35'
, die als Datetime-Wert aufgelöst werden können und auch für Stringliterale verwendet werden, die in einen Datetime-Typ umgewandelt werden können. - Datetime-Mnemonik
-
Ein Zeichenfolgenliteral mit einer Beschreibung eines gewünschten datetime-Werts, der in einen datetime-Typ umgewandelt werden kann.Zum Beispiel
'TODAY'
,'NOW'
. - Kontextvariablen
-
Ein intern definierte Kontextvariable
- Lokale Variablen
-
Deklarierte lokale Variablen, Über- und Rückgabeparameter eines PSQL-Moduls (Stored Procedure, Trigger, unbenannter PSQL-Block in DSQL)
- Positionale Parameter
-
Ein Mitglied innerhalb einer geordneten Gruppe von einem oder mehreren unbenannten Parametern, die an eine gespeicherte Prozedur oder eine vorbereitete Abfrage übergeben wurden.
- Unterabfrage
-
Eine
SELECT
-Anweisung, die in Klammern eingeschlossen ist, die einen einzelnen (skalaren) Wert zurückgibt oder, wenn er in existenziellen Prädikaten verwendet wird, einen Satz von Werten. - Funktionskennung
-
Die Kennung einer internen oder externen Funktion in einem Funktionsausdruck
- Type-Cast
-
Ein Ausdruck, der explizit Daten von einem in einen anderen Datentyp unter Verwendung der
CAST
-Funktion (CAST (<value> AS <datatype>)
) konvertiert.Nur für Datum-/Zeit-Literale ist die Kurzschreibweise <datatype> <value> (DATE '40.12.2016'
) möglich. - Bedingter Ausdruck
-
Ausdrücke mit
CASE
und verwandten internen Funktionen - Klammern
-
Klammernpaare
(…)
werden verwendet, um Ausdrücke zu gruppieren.Operationen innerhalb der Klammern werden vor Operationen außerhalb von ihnen durchgeführt.Wenn eingebettete Klammern verwendet werden, werden die tiefsten eingebetteten Ausdrücke zuerst ausgewertet und dann bewegen sich die Auswertungen von innen nach außen durch die Einbettungsstufen. COLLATE
-Klausel-
Klausel, die für CHAR- und VARCHAR-Datentypen angewendet werden kann, um die Collation für String-Vergleiche festzulegen.
NEXT VALUE FOR sequence
-
Ausdruck zum Ermitteln des nächsten Wertes eines bestimmten Generators (Sequenz).Die interne Funktion
GEN_ID()
tut das Gleiche. AT
-Ausdruck-
Ausdruck zum Ändern der Zeitzone einer Datetime (Datetime).