- カテゴリ:
COALESCE¶
引数内の最初の非NULL 式を返します。またはすべての引数が NULL の場合は NULLを返します。
構文¶
COALESCE( <expr1> , <expr2> [ , ... , <exprN> ] )
使用上の注意¶
Snowflakeは引数の 暗黙的な変換 を実行して互換性を持たせます。たとえば、入力式の1つが数値型の場合、戻り型も数値型になります。つまり
SELECT COALESCE('17', 1);は最初に VARCHAR 値の'17'を NUMBER 値の17に変換し、最初の非 NULL 値を返します。変換が不可能な場合は、暗黙的な変換は失敗します。たとえば、
SELECT COALESCE('foo', 1);はエラーを返します。これは VARCHAR 値の'foo'を NUMBER 値に変換できないためです。We recommend passing in arguments of the same type or explicitly converting arguments if needed.
暗黙的な変換が非数値を数値に変換する場合、結果は NUMBER(18,5)型の値になります。
定数ではない数値文字列引数で、 NUMBER(18,5)が数値を表すのに十分でない場合は、値を表すことができる型に引数を キャスト します。
照合順序の詳細¶
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.
例¶
次の例は、3つの列の値と、COALESCE 関数を3つの列に適用する場合の結果を示しています。
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 |
+---------+---------+---------+-----------------+