「MySQL - COALESCE関数」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == COALESCE関数は、引数として渡された値の中から最初の非NULL値を返す関数である。<br> <br> この関数はNULLをデフォルト値に置き換えることができるため、複数の列から最初の有効な値を取得あるいはレポート作成時にNULLを見やすい表示に変換することができる。<br> <br> <u>※注意</u><br> <u>全ての引数がNULLの場合は、NULLを返す。</u><br> <u>引数の…」) |
編集の要約なし |
||
1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
COALESCE関数は、引数として渡された値の中から最初の非NULL値を返す関数である。<br> | COALESCE関数は、引数として渡された値の中から最初の非NULL値を返す関数である。<br> | ||
COALESCE関数はSQL標準の関数であり、主要なRDBMSで同じように使用できるため、MySQL、SQL Server、PostgreSQL、Oracle等で共通して使用できる。<br> | |||
<br> | <br> | ||
この関数はNULLをデフォルト値に置き換えることができるため、複数の列から最初の有効な値を取得あるいはレポート作成時にNULLを見やすい表示に変換することができる。<br> | この関数はNULLをデフォルト値に置き換えることができるため、複数の列から最初の有効な値を取得あるいはレポート作成時にNULLを見やすい表示に変換することができる。<br> | ||
11行目: | 12行目: | ||
== 基本構文 == | == 基本構文 == | ||
<syntaxhighlight lang="mysql"> | <syntaxhighlight lang="mysql"> | ||
COALESCE( | COALESCE(<値1>, <値2>, <値3>, ...) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
34行目: | 35行目: | ||
SELECT name, phone_number1, phone_number2, COALESCE(phone_number1, phone_number2, '連絡先なし') as contact | SELECT name, phone_number1, phone_number2, COALESCE(phone_number1, phone_number2, '連絡先なし') as contact | ||
FROM customers; | FROM customers; | ||
</syntaxhighlight> | |||
<br><br> | |||
== IFNULL関数 (MySQL) == | |||
MySQLには、IFNULL関数のような独自の代替関数もある。<br> | |||
ただし、2つの引数のみしか指定できない。<br> | |||
<br> | |||
<syntaxhighlight lang="mysql"> | |||
-- MySQLの独自関数 | |||
IFNULL(<値1>, <値2>) -- 2つの引数のみ | |||
-- または | |||
IF(<条件>, <値1>, <値2>) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br><br> | <br><br> |
2024年11月27日 (水) 00:03時点における最新版
概要
COALESCE関数は、引数として渡された値の中から最初の非NULL値を返す関数である。
COALESCE関数はSQL標準の関数であり、主要なRDBMSで同じように使用できるため、MySQL、SQL Server、PostgreSQL、Oracle等で共通して使用できる。
この関数はNULLをデフォルト値に置き換えることができるため、複数の列から最初の有効な値を取得あるいはレポート作成時にNULLを見やすい表示に変換することができる。
※注意
全ての引数がNULLの場合は、NULLを返す。
引数の型は、互換性がある必要がある。(例: 数値型同士、文字列型同士)
基本構文
COALESCE(<値1>, <値2>, <値3>, ...)
使用例
-- 例 1
-- NULLをスキップして最初の非NULL値の1を返す
SELECT COALESCE(NULL, 1, 2); -- 結果: 1
-- 例 2
-- 2つのNULLをスキップして3を返す
SELECT COALESCE(NULL, NULL, 3); -- 結果: 3
-- 例 3
-- 最初の値が非NULLのため、それを返す
SELECT COALESCE(10, 20, 30); -- 結果: 10
-- 例 4
-- phone_number1がNULLの場合は、phone_number2
-- phone_number2もNULLの場合は、'連絡先なし'を返す
SELECT name, phone_number1, phone_number2, COALESCE(phone_number1, phone_number2, '連絡先なし') as contact
FROM customers;
IFNULL関数 (MySQL)
MySQLには、IFNULL関数のような独自の代替関数もある。
ただし、2つの引数のみしか指定できない。
-- MySQLの独自関数
IFNULL(<値1>, <値2>) -- 2つの引数のみ
-- または
IF(<条件>, <値1>, <値2>)