Ein Ausdruck (
expression ) spezifiziert einen Wert, der gegebenenfalls durch Anwendung von arithmetischen Operatoren auf Werte erzeugt wird.Es werden folgende arithmetische Operatoren unterschieden:
Syntax
<expression> ::= <term> | <expression> + <term> | <expression> - <term>
<expression_list> ::= (<expression>,...)
<term> ::= <factor>
| <term> * <factor> | <term> / <factor>
| <term> DIV <factor>| <term> MOD <factor>
Erläuterung
Die arithmetischen Operatoren können nur auf numerische Datentypen angewandt werden.
Ergebnis eines Ausdrucks | |
expression |
Wert eines beliebigen Datentyps |
factor liefert einen NULL-Wert |
NULL-Wert |
factor liefert einen Spezial-NULL-Wert |
Spezial-NULL-Wert |
expression führt zu einer Division durch 0 |
Spezial-NULL-Wert |
expression führt zu einem Überlauf des internen Zwischenergebnisses |
Spezial-NULL-Wert |
Bei fehlender Klammerung haben die Operatoren folgende Priorität:
Operanden sind Festkommazahlen
Operand1 (a) |
Operand2 (b) |
Ergebnis |
Festkomma zahl(p Genauigkeit s Anzahl der Nachkommastellen) |
Festkommazahl |
Festkommazahl |
Der Datentyp des Ergebnisses ist abhängig von der Operation sowie von der Genauigkeit und der Anzahl der Nachkommastellen der Operanden.
Beachten Sie, daß bei der Angabe eines Spaltennamens der Datentyp der Spalte zugrunde gelegt wird, nicht die Genauigkeit und die Anzahl der Nachkommastellen des aktuellen Wertes der Spalte.
Operanden sind Festkommazahlen, Operatoren sind +, - , * oder /
Das Ergebnis von Addition, Subtraktion und Multiplikation wird aus einem Zwischenergebnis erzeugt, das mehr als 38 gültige Ziffern haben kann. Wenn das Zwischenergebnis nicht mehr als 38 gültige Ziffern hat, ist das endgültige Ergebnis gleich diesem Zwischenergebnis. Andernfalls wird ein Ergebnis als Gleitkommazahl mit 38 Stellen Genauigkeit erzeugt. Nachkommastellen werden gegebenenfalls abgeschnitten.
Bedingung |
Operator |
Ergebnis |
max(p-s,p'-s') |
+, - |
Festkommazahl |
(p+p')<=38 |
* |
Festkommazahl |
(p-s+s')<=38 |
/ |
Festkommazahl |
Operanden sind ganze Zahlen, Operatoren sind DIV, MOD
Bedingung |
Operator |
Ergebnis |
ABS(a)<1E38 und ABS(b)<1E38 und b<>0 |
DIV |
TRUNC(a/b) |
b=0 |
DIV |
Spezial-NULL-Wert |
ABS(a)>=1E38 und |
DIV |
Fehlermeldung |
ABS(a)<1E38 und |
MOD |
a-b*(a DIV b) |
b=0 |
MOD |
a |
ABS(a)>=1E38 und |
MOD |
Fehlermeldung |
Ein Operand ist Gleitkommzahl
Wenn einer der Operanden eine Gleitkomma
zahl ist, so ist das Ergebnis der arithmetischen Operation eine Gleitkommazahl.