Kategorien:

Funktionen für bedingte Ausdrücke

COALESCE

Gibt den ersten Nicht-NULL-Ausdruck in den Argumenten zurück oder NULL, wenn alle Argumente NULL sind.

Syntax

COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
Copy

Nutzungshinweise

  • Übergeben Sie möglichst Argumente desselben Typs. Vermeiden Sie die Übergabe von Argumenten unterschiedlichen Typs.

  • Wenn eines der Argumente eine Zahl ist, führt die Funktion automatisch eine Umwandlung der nichtnumerischen Zeichenfolgenargumente (z. B. 'a string') und der Zeichenfolgenargumente, die keine Konstanten sind, in den Typ NUMBER(18,5) aus.

    Wenn bei numerischen Zeichenfolgenargumenten, die keine Konstanten sind, NUMBER(18,5) nicht ausreicht, um den numerischen Wert darzustellen, müssen Sie das Argument in einen Typ umwandeln, 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

SELECT column1, column2, column3, coalesce(column1, column2, column3)
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(COLUMN1, COLUMN2, COLUMN3) |
|---------+---------+---------+-------------------------------------|
|       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 |
+---------+---------+---------+-------------------------------------+
Copy