MariaDBでは、 COALESCE() 演算子は、リスト内の最初のNULL以外の値を返します。NULL以外の値がない場合は、NULLを返します。
構文
構文は次のようになります:
COALESCE(value,...) 例
簡単な例を次に示します。
SELECT COALESCE(null, 'Red', 'Black'); 結果:
Red
この場合、 Red NULL以外の最初の値であるため、 COALESCE() その値を返しました。
黒コード> NULLでもありませんでしたが、 Redの後に来ました そのため、返送されませんでした。
データベースの例
次のクエリを実行するとします。
SELECT
PetName,
DOB AS "Date of Birth"
FROM Pets; そして、次の結果が得られます:
+---------+---------------+ | PetName | Date of Birth | +---------+---------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | NULL | | Meow | NULL | +---------+---------------+
最後の2行のDOB列にNULL値があることがわかります。
NULLを置き換えたい場合 別の値を使用すると、クエリを次のように変更できます。
SELECT
PetName,
COALESCE(DOB, 'None Supplied') AS "Date of Birth"
FROM Pets; 結果:
+---------+---------------+ | PetName | Date of Birth | +---------+---------------+ | Fluffy | 2020-11-20 | | Fetch | 2019-08-16 | | Scratch | 2018-10-01 | | Wag | 2020-03-15 | | Tweet | 2020-11-28 | | Fluffy | 2020-09-17 | | Bark | None Supplied | | Meow | None Supplied | +---------+---------------+
表現
COALESCE() 最初はNULLと評価されない最初の式の現在の値を返します 。したがって、次のような式を渡すと、次のようになります。
SELECT COALESCE( null, 5 * 2 ); これを取得します:
10
すべての値がNULLの場合
すべての値がNULLの場合 、 COALESCE() NULLを返します :
SELECT COALESCE( null, null ); 結果:
NULL
COALESCE() vs IFNULL()
2つの値で使用する場合、 COALESCE() IFNULLと同じように機能します :
SET @a = null, @b = 52;
SELECT
COALESCE(@a, @b),
IFNULL(@a, @b); 結果:
+------------------+----------------+ | COALESCE(@a, @b) | IFNULL(@a, @b) | +------------------+----------------+ | 52 | 52 | +------------------+----------------+
無効な引数カウント
COALESCE()の使用 引数がないとエラーが発生します:
SELECT COALESCE(); 結果:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1