MySQL coalesce()函数

在MySQL中,coalesce()函数用于返回参数列表中的第一个非NULL值。它可以接受多个参数,并按参数的顺序进行判断和返回。
语法
coalesce(expr1, expr2, ..., expr_n)
expr1到expr_n是需要判断的表达式或列,可以是常量、表达式、列名等。
示例
考虑下面的students表:
| id | name | age | city |
|---|---|---|---|
| 1 | Jack | 19 | New York |
| 2 | Emma | 20 | NULL |
| 3 | Lucas | NULL | Paris |
| 4 | Sophia | 18 | Berlin |
| 5 | Alexander | 21 | NULL |
示例1: 使用coalesce()处理NULL值
SELECT id, name, coalesce(age, 0) as age, coalesce(city, 'NA') as city
FROM students;
结果:
| id | name | age | city |
|---|---|---|---|
| 1 | Jack | 19 | New York |
| 2 | Emma | 20 | NA |
| 3 | Lucas | 0 | Paris |
| 4 | Sophia | 18 | Berlin |
| 5 | Alexander | 21 | NA |
在以上示例中,我们使用coalesce()函数将age列中的NULL值替换为0,将city列中的NULL值替换为字符串’NA’。这样可以在查询结果中避免使用NULL值,使结果更加友好和易读。
示例2: 使用coalesce()合并多个列
SELECT id, name, coalesce(city, age, 'NA') as info
FROM students;
结果:
| id | name | info |
|---|---|---|
| 1 | Jack | New York |
| 2 | Emma | 20 |
| 3 | Lucas | Paris |
| 4 | Sophia | Berlin |
| 5 | Alexander | 21 |
在以上示例中,我们使用coalesce()函数合并了city和age两列,并将合并结果命名为info列。如果city列为NULL,则将返回age列中的值,如果都为空,则返回字符串’NA’。这样可以将多个列的值合并到一个列中,简化查询结果。
注意事项
coalesce()函数仅在参数列表中的所有表达式或列均为NULL时才返回NULL。如果参数列表中的某个表达式或列不为NULL,则该值将作为返回值。- 如果参数列表中的所有表达式或列都为NULL,且没有提供替代值,则
coalesce()函数将返回NULL。
以上是关于MySQL中coalesce()函数的详细介绍和示例。通过使用coalesce()函数,我们可以处理NULL值,简化查询结果,并实现更友好和易读的输出。
极客笔记