COALESCEとは?コアレス
COALESCEとは、引数を左から評価し、最初に見つかったNULLでない値を返す関数で、すべてNULLならNULLを返す。設計上は「列をNULL許容にするか既定値付きのNOT NULLにするか」の判断とセットで、検索条件をこの関数で包むとその列の索引が使われず全表走査に落ちる点が効いてくる。
最終更新:2026-10-06
システムアーキテクトを最短で暗記・合格する →背景
NULLは「値が無い」状態を表すために導入されたが、比較も算術も結果へ伝播するため、集計や外部結合の後で欠落が表面化する。そのつど場合分けを書かずに既定値へ畳み込めるよう、SQLはCASE式の略記としてこの関数を用意した。方式設計では、欠落の穴埋めをSQL側でやるかアプリケーション側でやるかという責務分担の問題として現れる。
具体例
連絡先の優先順位はCOALESCE(携帯番号, 固定番号, '未登録')で表せる。月次集計でCOALESCE(SUM(金額), 0)とすれば実績のない月を0円として返せる。一方でWHERE COALESCE(削除日, '9999-12-31') > CURRENT_DATEと書くと索引が効かないため、論理削除フラグを別列に持つか、その式に対する関数索引を張るかの判断になる。
試験での引っ掛け
NULLIF(A, B)は「AとBが等しければNULL、そうでなければA」を返す逆向きの関数で、名前が似ているため混同しやすい。OracleのNVLやMySQLのIFNULLはベンダ固有で、移植性を要件に挙げているならCOALESCEに揃える。WHERE句で包むと索引が使えなくなる点も見落としやすい。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。