+
|
factor | ||||||||
-
|
(scalar-expression) | ||||||||
scalar-expression | scalar-operator | scalar-expression |
Dieses Dokument behandelt folgende Themen:
Eine scalar-expression besteht aus einem factor und anderen scalar-expressions einschließlich scalar-operators.
In punkto Referenzierungspriorität gilt folgendes:
Wenn in einer scalar-expression ein unqualifizierter Variablenname angegeben wird, wird zunächst angenommen, dass es sich um den Namen einer Spalte der referenzierten Tabelle handelt.
Falls in der Tabelle eine Spalte dieses Namens nicht vorkommt, behandelt Natural die Variable als Benutzervariable (host-variable).
+
|
||
-
|
||
*
|
||
/
|
Ein scalar-operator kann einer der oben aufgeführten Operatoren sein, wobei vor und nach den Operatoren − und / jeweils mindestens ein Leerzeichen stehen muss.
atom | ||
column-reference | ||
aggregate-function | ||
special-register |
Ein factor kann eines der obigen Elemente sein, die im Folgenden beschrieben sind.
parameter | ||
constant |
Ein atom kann entweder ein parameter oder eine Konstante (constant) sein; vgl. Abschnitt Grundlegende Syntaxbestandteile.
table-name . | column-name | ||
correlation-name. |
Eine column-reference ist ein Spaltenname (column-name), optional qualifiziert durch einen Tabellennamen (table-name) oder einen correlation-name (vgl. Abschnitt Grundlegende Syntaxbestandteile). Qualifizierte Namen sind oft klarer als unqualifizierte und manchmal erforderlich.
Anmerkung:
Ein table-name darf hier nicht explizit
mit einem authorization-identifier qualifiziert
werden. Falls Sie einen qualifizierten table-name
benötigen, verwenden Sie stattdessen einen
correlation-name.
Wird eine Spalte mit einem table-name oder
correlation-name referenziert, muss sie in der
betreffenden Tabelle enthalten sein. Wird weder
table-name noch
correlation-name angegeben, muss die betreffende
Spalte in einer der in der FROM
-Klausel angegebenen Tabellen
enthalten sein (siehe table-expression).
COUNT
|
(*) | ||||||
(DISTINCT
column-reference)
|
|||||||
AVG
|
|||||||
MAX
|
(DISTINCT
column-reference)
|
||||||
MIN
|
([ALL ] scalar-expression)
|
||||||
SUM
|
SQL bietet eine Reihe spezieller Funktionen zur Erweiterung der grundlegenden Such-Möglichkeiten. Folgende sogenannte SQL aggregate-functions sind verfügbar und werden von Natural unterstützt:
Bis auf COUNT(*)
sammelt jede dieser Funktionen die
Skalarwerte in einem Argument, d.h. einer einzelnen Spalte oder einer
scalar-expression, und gibt als Ergebnis einen
Skalarwert zurück.
Beispiel:
DEFINE DATA LOCAL 1 AVGAGE (I2) END-DEFINE ... SELECT AVG (AGE) INTO AVGAGE FROM SQL-PERSONNEL ...
Im allgemeinen kann dem Argument
optional das Schlüsselwort DISTINCT
vorangestellt werden, um doppelte Werte zu eliminieren, bevor die Funktion
ausgeführt wird.
Wenn Sie DISTINCT
angeben, muss das Argument der Name
einer einzelnen Spalte sein; wenn Sie DISTINCT
nicht angeben, kann
das Argument eine allgemeine scalar-expression sein.
DISTINCT
ist nicht erlaubt mit der
Funktion COUNT(*)
, mit der alle Reihen in einer Tabelle — ohne
Eliminierung doppelt vorkommender Reihen — gezählt werden.
USER
|
Bei der Referenzierung eines special-registers erhält man einen Skalarwert.