最近看到有 SQL 使用這 function ,特此紀錄一下這是什麼
其實執行完以下 SQL 就很清楚了
select a, b, c, coalesce(a, b, c, 0) from (
select 1 as a, 2 as b, 3 as c
union all
select 1, null, null
union all
select null, 2, null
union all
select null, null, 3
union all
select null, null, null
) t
輸出結果
+------+------+------+----------------------+
| a | b | c | coalesce(a, b, c, 0) |
+------+------+------+----------------------+
| 1 | 2 | 3 | 1 |
| 1 | NULL | NULL | 1 |
| NULL | 2 | NULL | 2 |
| NULL | NULL | 3 | 3 |
| NULL | NULL | NULL | 0 |
+------+------+------+----------------------+
簡單說就是第一個值有值時,取第一個值;沒有取第二個;再沒有取第三個……(下略)。
類似 ifnull()
,不過ifnull()
只能放兩個參數;coalesce()
可以多個
沒有留言:
張貼留言