COALESCEとは、複数指定された引数のうち、NULLではない最初の値を返すSQL関数である。Oracle、MySQL、PosgreSQL 及び SQL Serverで使うことができる。
DBMS | COALESCE |
---|---|
DB2 | ✓ |
MySQL | ✓ |
Oracle | ✓ |
PostgreSQL | ✓ |
Presto | ✓ |
SQL Server | ✓ |
式のリストのうち、NULLでない最初の値を戻す。式のリストが全てNULLである場合、COALESCE
はNULLを戻す。
COALESCE(expr1, expr2, ...)
COALESCE
の使用例を次に示す。
SQL> SELECT COALESCE(sal + comm, sal) FROM emp;
上記のSQL文の場合、歩合給(comm)が NULL であれば、sal + comm という計算式の結果も NULL となる。そのため、歩合給が NULL であれば給与(sal)の値が返される。
SQL> SELECT COALESCE(comm, 0) FROM emp;
上記のSQL文の場合、comm が NULL でなければ comm が戻り、comm が NULL ならば0が戻る。したがって、NULL を0に変換することができる。
オラクル・データベースには NVL という COALESCE に似た関数がある。NVL は COALESCE と違い、NULL かどうかを評価できる引数は2つ固定である。
DBMS | CASE | COALESCE | NVL | NVL2 |
---|---|---|---|---|
MySQL | ✓ | ✓ | ✗ | ✗ |
Oracle | ✓ | ✓ | ✓ | ✓ |
PostgreSQL | ✓ | ✓ | ✗ | ✗ |
SQL Server | ✓ | ✓ | ✗ | ✗ |
PostgreSQL における COALESCE の使い方は、オラクル・データベースと同じである。
COALESCE(value [, ...])
MySQL における COALESCE の使い方は、オラクル・データベースと同じである。
COALESCE(value,...)
Presto における COALESCE の使い方は、オラクル・データベースと同じである。
coalesce(value1, value2[, ...])
COALESCE の読み方は、コアレス(英)又はコーレス(米)である。
Pearson 2023. coalesce. Longman Dictionary of Contemporary English