SQL COALESCE 関数

COALESCEとは、複数指定された引数のうち、NULLではない最初の値を返すSQL関数である。OracleMySQLPosgreSQL 及び SQL Serverで使うことができる。

COALESCE
DBMS COALESCE
DB2
MySQL
Oracle
PostgreSQL
Presto
SQL Server

使い方

式のリストのうち、NULLでない最初の値を戻す。式のリストが全てNULLである場合、COALESCEはNULLを戻す。

COALESCE(expr1, expr2, ...)

SQL

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との違い

オラクル・データベースには NVL という COALESCE に似た関数がある。NVL は COALESCE と違い、NULL かどうかを評価できる引数は2つ固定である。

NULLを変換する式及び関数
DBMS CASE COALESCE NVL NVL2
MySQL
Oracle
PostgreSQL
SQL Server

PostgreSQL

PostgreSQL における COALESCE の使い方は、オラクル・データベースと同じである。

COALESCE(value [, ...])

MySQL

MySQL における COALESCE の使い方は、オラクル・データベースと同じである。

COALESCE(value,...)

Presto

Presto における COALESCE の使い方は、オラクル・データベースと同じである。

coalesce(value1, value2[, ...])

読み方

COALESCE の読み方は、コアレス(英)又はコーレス(米)である。

参考文献

Pearson 2023. coalesce. Longman Dictionary of Contemporary English