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值,简化查询结果,并实现更友好和易读的输出。