- Kategorien:
COALESCE¶
Gibt den ersten Nicht-NULL-Ausdruck in den Argumenten zurück oder NULL, wenn alle Argumente NULL sind.
Syntax¶
COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
Nutzungshinweise¶
Snowflake führt eine implizite Konvertierung von Argumenten aus, damit diese kompatibel sind. Wenn beispielsweise einer der Eingabeausdrücke ein numerischer Typ ist, ist der Rückgabetyp ebenfalls ein numerischer Typ. Das heißt,
SELECT COALESCE('17', 1);konvertiert zuerst den VARCHAR-Wert'17'in den NUMBER-Wert17und gibt dann den ersten Nicht-NULL-Wert zurück.Wenn eine Konvertierung nicht möglich ist, schlägt die implizite Konvertierung fehl. Beispiel:
SELECT COALESCE('foo', 1);gibt einen Fehler zurück, da der VARCHAR-Wert'foo'nicht in einen NUMBER-Wert konvertiert werden kann.We recommend passing in arguments of the same type or explicitly converting arguments if needed.
Wenn die implizite Konvertierung einen nichtnumerischen Wert in einen numerischen Wert konvertiert, ist das Ergebnis ein Wert vom Typ NUMBER(18,5).
Wenn bei numerischen Zeichenfolgenargumenten, die keine Konstanten sind, NUMBER(18,5) nicht ausreicht, um den numerischen Wert darzustellen, wandeln Sie das Argument in einen-Typ um, der den Wert darstellen kann.
Sortierungsdetails¶
The collation specifications of all input arguments must be compatible.
The comparisons follow the collation based on the input arguments‘ collations and precedences.
The collation of the result of the function is the highest-precedence collation of the inputs.
Beispiele¶
Das folgende Beispiel zeigt die Werte in drei Spalten und dann das Ergebnis, wenn die COALESCE-Funktion auf die drei Spalten angewendet wird:
SELECT column1,
column2,
column3,
COALESCE(column1, column2, column3) AS coalesce_result
FROM (values
(1, 2, 3 ),
(null, 2, 3 ),
(null, null, 3 ),
(null, null, null),
(1, null, 3 ),
(1, null, null),
(1, 2, null)
) v;
+---------+---------+---------+-----------------+
| COLUMN1 | COLUMN2 | COLUMN3 | COALESCE_RESULT |
|---------+---------+---------+-----------------|
| 1 | 2 | 3 | 1 |
| NULL | 2 | 3 | 2 |
| NULL | NULL | 3 | 3 |
| NULL | NULL | NULL | NULL |
| 1 | NULL | 3 | 1 |
| 1 | NULL | NULL | 1 |
| 1 | 2 | NULL | 1 |
+---------+---------+---------+-----------------+