「MySQL」COALESCE関数でリストの中で最初に出現するNULL以外の要素を取得
書式
COALESCE( 値1, 値2,xxx)
このCOALESCE関数は引数のリストの中の先頭のNULL以外の要素を返します。
リストの中がすべてNULLであった場合はNULLを返します。
使用例1
リストの中にNULL以外の値が存在する場合
mysql> SELECT COALESCE( NULL, 'study', 'abc', NULL, 1, 'SQL' );
+--------------------------------------------------+
| COALESCE( NULL, 'study', 'abc', NULL, 1, 'SQL' ) |
+--------------------------------------------------+
| study |
+--------------------------------------------------+
1 row in set (0.01 sec)
mysql> SELECT COALESCE( NULL, 'study', 'abc', NULL, 1, 'SQL' );
+--------------------------------------------------+
| COALESCE( NULL, 'study', 'abc', NULL, 1, 'SQL' ) |
+--------------------------------------------------+
| study |
+--------------------------------------------------+
1 row in set (0.01 sec)
mysql> SELECT COALESCE( NULL, 'study', 'abc', NULL, 1, 'SQL' ); +--------------------------------------------------+ | COALESCE( NULL, 'study', 'abc', NULL, 1, 'SQL' ) | +--------------------------------------------------+ | study | +--------------------------------------------------+ 1 row in set (0.01 sec)
使用例2
リストの中が全てNULLの場合
mysql> SELECT COALESCE( NULL, NULL, NULL );
+------------------------------+
| COALESCE( NULL, NULL, NULL ) |
+------------------------------+
| NULL |
+------------------------------+
1 row in set (0.00 sec)
mysql> SELECT COALESCE( NULL, NULL, NULL );
+------------------------------+
| COALESCE( NULL, NULL, NULL ) |
+------------------------------+
| NULL |
+------------------------------+
1 row in set (0.00 sec)
mysql> SELECT COALESCE( NULL, NULL, NULL ); +------------------------------+ | COALESCE( NULL, NULL, NULL ) | +------------------------------+ | NULL | +------------------------------+ 1 row in set (0.00 sec)