Mathematische Funktionen

Alle mathematischen Funktionen verhalten sich in folgender Weise:

  • Sie geben NULL zurück, wenn einer der Eingabeparameter NULL ist.
  • Sie geben NaN zurück, wenn eines der Argumente NaN ist.

ABS

ABS(X)

Beschreibung

Berechnet den absoluten Wert. Gibt einen Fehler zurück, wenn das Argument eine Ganzzahl ist und der Ausgabewert nicht als der gleiche Typ dargestellt werden kann. Dies geschieht nur mit dem größten negativen Eingabewert, der nicht positiv dargestellt werden kann. Gibt +inf für ein +/-inf-Argument zurück.

SIGN

SIGN(X)

Beschreibung

Gibt -1, 0 oder +1 für negative, Null- bzw. positive Argumente zurück. Bei Gleitkommaargumenten unterscheidet diese Funktion nicht zwischen positiv und negativ null. Gibt NaN für ein NaN-Argument zurück.

IS_INF

IS_INF(X)

Beschreibung

Gibt TRUE zurück, wenn der Wert positiv oder negativ unendlich ist. Gibt NULL für NULL-Eingaben zurück.

IS_NAN

IS_NAN(X)

Beschreibung

Gibt TRUE zurück, wenn der Wert ein NaN-Wert ist. Gibt NULL für NULL-Eingaben zurück.

IEEE_DIVIDE

IEEE_DIVIDE(X, Y)

Beschreibung

Dividiert X durch Y. Diese Funktion schlägt nie fehl. Gibt FLOAT64 zurück. Erzeugt im Gegensatz zum Divisionsoperator (/) keinen Fehler bei der Division durch null oder bei Überlauf.

Sonderfälle:

  • Wenn das Ergebnis überläuft, wird +/-inf zurückgegeben.
  • Wenn Y=0 und X=0, wird NaN zurückgegeben.
  • Wenn Y=0 und X!=0, wird +/-inf zurückgegeben.
  • Wenn X = +/-inf und Y = +/-inf, wird NaN zurückgegeben.

Das Verhalten von IEEE_DIVIDE wird in der nachfolgenden Tabelle weiter veranschaulicht.

Sonderfälle für IEEE_DIVIDE

In der folgenden Tabelle sind Sonderfälle für IEEE_DIVIDE aufgelistet:

Zähler-Datentyp (X) Nenner-Datentyp (Y) Ergebniswert
Alles außer 0 0 +/-inf
0 0 NaN
0 NaN NaN
NaN 0 NaN
+/-inf +/-inf NaN

SQRT

SQRT(X)

Beschreibung

Berechnet die Quadratwurzel aus X. Generiert einen Fehler, wenn X kleiner als 0 ist. Gibt +inf zurück, wenn X +inf ist.

POW

POW(X, Y)

Beschreibung

Gibt den Wert X zurück, der mit Y potenziert wird. Wenn das Ergebnis unterläuft und nicht darstellbar ist, gibt die Funktion den Wert null zurück. Gibt einen Fehler zurück, wenn eine der folgenden Bedingungen zutrifft:

  • X ist ein endlicher Wert, der kleiner als 0 ist, und Y ist keine ganze Zahl.
  • X ist 0 und Y ist ein endlicher Wert, der kleiner als 0 ist.

Das Verhalten von POW() wird in der nachfolgenden Tabelle weiter veranschaulicht.

POWER

POWER(X, Y)

Beschreibung

Synonym für POW().

Sonderfälle für POW(X, Y) und POWER(X, Y)

Im Folgenden sind Sonderfälle für POW(X, Y) und POWER(X, Y) aufgeführt.

X Y POW(X, Y) oder POWER(X, Y)
1,0 Beliebiger Wert, einschließlich NaN 1,0
Beliebig, einschließlich NaN 0 1,0
-1,0 +/-inf 1,0
ABS (X) < 1 -inf +inf
ABS (X) > 1 -inf 0
ABS (X) < 1 +inf 0
ABS (X) > 1 +inf +inf
-inf Y < 0 0
-inf Y > 0 -inf, wenn Y eine ungerade Ganzzahl ist, sonst +inf
+inf Y < 0 0
+inf Y > 0 +inf

EXP

EXP(X)

Beschreibung

Potenziert e mit X, was auch als natürliche Exponentialfunktion bezeichnet wird. Bei einem Unterlauf des Ergebnisses gibt diese Funktion eine Null zurück. Erzeugt einen Fehler, wenn ein Überlauf des Ergebnisses auftritt. Wenn X +/-inf ist, gibt diese Funktion +inf oder 0 zurück.

LN

LN(X)

Beschreibung

Berechnet den natürlichen Logarithmus von X. Generiert einen Fehler, wenn X kleiner als oder gleich null ist. Wenn X +inf ist, gibt diese Funktion +inf zurück.

LOG

LOG(X [, Y])

Beschreibung

Wenn nur X vorhanden ist, ist LOG ein Synonym für LN. Falls Y ebenfalls vorhanden ist, berechnet LOG den Logarithmus von X zur Basis Y. Erzeugt in folgenden Fällen einen Fehler:

  • X ist kleiner oder gleich null.
  • Y ist 1,0.
  • Y ist kleiner oder gleich null.

Das Verhalten von LOG(X, Y) wird in der nachfolgenden Tabelle weiter veranschaulicht.

Sonderfälle für LOG(X, Y)

X Y LOG(X, Y)
-inf Beliebiger Wert NaN
Beliebiger Wert +inf NaN
+inf 0,0 Y < 1,0 -inf
+inf Y > 1,0 +inf

LOG10

LOG10(X)

Beschreibung

Ähnlich wie bei LOG, berechnet den Logarithmus aber auf Basis 10.

GREATEST

GREATEST(X1,...,XN)

Beschreibung

Gibt NULL zurück, wenn eine der Eingaben NULL ist. NaN wird zurückgegeben, wenn eine der Eingaben NaN ist. Andernfalls wird der größte Wert zwischen X1,..., XN gemäß Kleiner-als-Vergleich (<) zurückgegeben.

LEAST

LEAST(X1,...,XN)

Beschreibung

Gibt NULL zurück, wenn eine der Eingaben NULL ist. NaN wird zurückgegeben, wenn eine der Eingaben NaN ist. Andernfalls wird der kleinste Wert zwischen X1,...,XN gemäß Größer-als-Vergleich (>) zurückgegeben.

DIV

DIV(X, Y)

Beschreibung

Gibt das Ergebnis der Ganzzahldivision von X durch Y zurück. Die Division durch null gibt einen Fehler zurück. Division durch -1 kann überlaufen. Mögliche Ergebnistypen finden Sie in der Tabelle unten.

SAFE_DIVIDE

SAFE_DIVIDE(X, Y)

Beschreibung

Entspricht dem Divisionsoperator (/), gibt jedoch NULL zurück, wenn ein Fehler auftritt, beispielsweise bei einer Division durch null.

SAFE_MULTIPLY

SAFE_MULTIPLY(X, Y)

Beschreibung

Entspricht dem Multiplikationsoperator (*), gibt jedoch NULL zurück, wenn ein Überlauf auftritt.

SAFE_NEGATE

SAFE_NEGATE(X)

Beschreibung

Entspricht dem Unäres-Minus-Operator (-), gibt jedoch NULL zurück, wenn ein Überlauf auftritt.

SAFE_ADD

SAFE_ADD(X, Y)

Beschreibung

Entspricht dem Additionsoperator (+), gibt jedoch NULL zurück, wenn ein Überlauf auftritt.

SAFE_SUBTRACT

SAFE_SUBTRACT(X, Y)

Beschreibung

Entspricht dem Subtraktionsoperator (-), gibt jedoch NULL zurück, wenn ein Überlauf auftritt.

MOD

MOD(X, Y)

Beschreibung

Modulo-Funktion: gibt den Rest der Division von X durch Y zurück. Der zurückgegebene Wert hat dasselbe Vorzeichen wie X. Wenn Y gleich 0 ist, wird ein Fehler ausgegeben. Siehe nachfolgende Tabelle für mögliche Ergebnistypen.

ROUND

ROUND(X [, N])

Beschreibung

Wenn nur X vorhanden ist, rundet ROUND X auf die nächste Ganzzahl. Wenn N vorhanden ist, rundet ROUND X auf N-Dezimalstellen nach dem Dezimalzeichen. Wenn N negativ ist, rundet ROUND die Ziffern links vom Dezimalzeichen ab. Rundet halbe Zahlen von null weg. Erzeugt einen Fehler, wenn ein Überlauf auftritt.

TRUNC

TRUNC(X [, N])

Beschreibung

Wenn nur X vorhanden ist, rundet TRUNC X auf die nächste Ganzzahl, deren absoluter Wert nicht größer als der absolute Wert von X ist. Wenn N ebenfalls vorhanden ist, verhält sich TRUNC wie ROUND(X, N), rundet aber immer gegen null und läuft nie über.

CEIL

CEIL(X)

Beschreibung

Gibt den kleinsten Integralwert (mit FLOAT64-Typ) zurück, der nicht kleiner als X ist.

CEILING

CEILING(X)

Beschreibung

Synonym von CEIL(X)

FLOOR

FLOOR(X)

Beschreibung

Gibt den größten Integralwert (mit FLOAT64-Typ) zurück, der nicht größer als X ist.

Beispiel für Verhalten der Rundungsfunktion

Beispiel für das Verhalten der Rundungsfunktionen in der Cloud Spanner SQL:

Eingabe "X" ROUND(X) TRUNC(X) CEIL(X) FLOOR(X)
2,0 2,0 2,0 2,0 2,0
2,3 2,0 2,0 3,0 2,0
2,8 3,0 2,0 3,0 2,0
2,5 3,0 2,0 3,0 2,0
-2,3 -2,0 -2,0 -2,0 -3,0
-2,8 -3,0 -2,0 -2,0 -3,0
-2,5 -3,0 -2,0 -2,0 -3,0
0 0 0 0 0
+/-inf +/-inf +/-inf +/-inf +/-inf
NaN NaN NaN NaN NaN

COS

COS(X)

Beschreibung

Berechnet den Kosinus von X, wobei X als Radiant angegeben wird. Schlägt niemals fehl.

COSH

COSH(X)

Beschreibung

Berechnet den hyperbolischen Kosinus von X, wobei X als Radiant angegeben wird. Erzeugt einen Fehler, wenn ein Überlauf auftritt.

ACOS

ACOS(X)

Beschreibung

Berechnet den Hauptwert des inversen Kosinus von X. Der zurückgegebene Wert liegt im Bereich [0,π]. Erzeugt einen Fehler, wenn X ein Wert außerhalb des Bereichs [-1, 1] ist.

ACOSH

ACOSH(X)

Beschreibung

Berechnet den inversen hyperbolischen Kosinus von X. Erzeugt einen Fehler, wenn X ein Wert kleiner als 1 ist.

SIN

SIN(X)

Beschreibung

Berechnet den Sinus von X, wobei X als Radiant angegeben wird. Schlägt niemals fehl.

SINH

SINH(X)

Beschreibung

Berechnet den hyperbolischen Sinus von X, wobei X als Radiant angegeben wird. Erzeugt einen Fehler, wenn ein Überlauf auftritt.

ASIN

ASIN(X)

Beschreibung

Berechnet den Hauptwert des inversen Sinus von X. Der zurückgegebene Wert liegt im Bereich [-π/2,π/2]. Erzeugt einen Fehler, wenn X außerhalb des Bereichs [-1, 1] liegt.

ASINH

ASINH(X)

Beschreibung

Berechnet den inversen hyperbolischen Sinus von X. Schlägt nie fehl.

TAN

TAN(X)

Beschreibung

Berechnet den Tangens von X, wobei X als Radiant angegeben wird. Erzeugt einen Fehler, wenn das Ergebnis überläuft.

TANH

TANH(X)

Beschreibung

Berechnet den hyperbolischen Tangens von X, wobei X als Radiant angegeben wird. Schlägt nie fehl.

ATAN

ATAN(X)

Beschreibung

Berechnet den Hauptwert des inversen Tangens von X. Der zurückgegebene Wert liegt im Bereich [-π/2,π/2]. Schlägt nie fehl.

ATANH

ATANH(X)

Beschreibung

Berechnet den inversen hyperbolischen Tangens von X. Erzeugt einen Fehler, wenn X außerhalb des Bereichs [-1, 1] liegt.

ATAN2

ATAN2(Y, X)

Beschreibung

Berechnet den Hauptwert des inversen Tangens von Y/X unter Verwendung der Vorzeichen der beiden Argumente, um den Quadranten zu bestimmen. Der zurückgegebene Wert liegt im Bereich [-π, π]. Das Verhalten dieser Funktion wird in nachfolgender Tabelle weiter veranschaulicht.

Sonderfälle für ATAN2()

Y X ATAN2(Y, X)
NaN Beliebiger Wert NaN
Beliebiger Wert NaN NaN
0 0 0, π oder -π, je nach Vorzeichen von X und Y
Endlicher Wert -inf π oder -π, je nach Vorzeichen von Y
Endlicher Wert +inf 0
+/-inf Endlicher Wert π/2 oder -π/2, je nach Vorzeichen von Y
+/-inf -inf ¾π oder -¾π, je nach Vorzeichen von Y
+/-inf +inf π/4 oder -π/4, je nach Vorzeichen von Y

Sonderfälle für trigonometrische und hyperbolische Rundungsfunktionen

X COS(X) COSH(X) ACOS(X) ACOSH(X) SIN(X) SINH(X) ASIN(X) ASINH(X) TAN(X) TANH(X) ATAN(X) ATANH(X)
+/-inf NaN =+inf NaN =+inf NaN =+inf NaN =+inf NaN =+1,0 π/2 NaN
-inf NaN =+inf NaN NaN NaN -inf NaN -inf NaN -1,0 -π/2 NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN