- Kategorien:
Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)
ARRAY_MIN¶
Gibt für ein Eingabe-ARRAY das Element mit dem niedrigsten Wert zurück, das nicht SQL NULL ist. Wenn das Eingabe-ARRAY leer ist oder nur SQL NULL-Elemente enthält, gibt diese Funktion NULL zurück.
Syntax¶
ARRAY_MIN( <array> )
Argumente¶
array
Das Eingabe-ARRAY.
Rückgabewerte¶
Diese Funktion gibt einen VARIANT-Wert zurück, der das Element mit dem niedrigsten Wert enthält, das nicht SQL NULL ist.
Die Funktion gibt NULL zurück, wenn array
NULL ist, leer ist oder nur SQL NULL-Elemente enthält.
Nutzungshinweise¶
Ein SQL NULL-Wert unterscheidet sich von einem expliziten Nullwert in semistrukturierten Daten (z. B. ein JSON null in JSON-Daten). Explizite Nullwerte werden bei der Identifizierung des Elements mit dem niedrigsten Wert berücksichtigt.
Die Funktion bestimmt das zurückzugebende Element, indem sie die Elemente im Array vergleicht. Die Funktion unterstützt den Vergleich von Elementen desselben Datentyps oder der folgenden Datentypen:
Elemente der Datentypen NUMBER und FLOAT.
Elemente der Datentypen TIMESTAMP_LTZ und TIMESTAMP_TZ.
Wenn das Array Elemente anderer Datentypen enthält, werden die Elemente in einen gemeinsamen Datentyp umgewandelt, wie im folgenden Beispiel gezeigt.
Beispiele¶
Im folgende Beispiel wird ein VARIANT-Wert zurückgegeben, der das Element mit dem niedrigsten Wert in einer ARRAY-Konstante enthält:
SELECT ARRAY_MIN([20, 0, NULL, 10, NULL]);
+------------------------------------+
| ARRAY_MIN([20, 0, NULL, 10, NULL]) |
|------------------------------------|
| 0 |
+------------------------------------+
Im folgenden Beispiel wird gezeigt, dass die Funktion den Wert NULL zurückgibt, wenn das Eingabe-ARRAY leer ist:
SELECT ARRAY_MIN([]);
+---------------+
| ARRAY_MIN([]) |
|---------------|
| NULL |
+---------------+
Im folgenden Beispiel wird gezeigt, dass die Funktion den Wert NULL zurückgibt, wenn das Eingabe-ARRAY nur SQL NULL-Werte enthält:
SELECT ARRAY_MIN([NULL, NULL, NULL]);
+-------------------------+
| ARRAY_MIN([NULL, NULL]) |
|-------------------------|
| NULL |
+-------------------------+
Um den Minimalwert in einem Array mit Elementen unterschiedlicher Datentypen zu ermitteln, werden die Elemente in denselben Datentyp umgewandelt. Im folgenden Beispiel wird ein DATE-Element in ein TIMESTAMP-Element umgewandelt, um den Minimalwert im Array zu bestimmen:
SELECT ARRAY_MIN([date1::TIMESTAMP, timestamp1]) AS array_min
FROM (
VALUES ('1999-01-01'::DATE, '2023-12-09 22:09:26.000000000'::TIMESTAMP),
('2023-12-09'::DATE, '1999-01-01 22:09:26.000000000'::TIMESTAMP)
AS t(date1, timestamp1)
);
+---------------------------+
| ARRAY_MIN |
|---------------------------|
| "1999-01-01 00:00:00.000" |
| "1999-01-01 22:09:26.000" |
+---------------------------+