2016-11-22 39 views
0

COALESCE是一个SQL函数,它返回参数中的第一个非NULL表达式。因此,在下面的语句...MySQL COALESCE有两个参数?

SELECT USER.user_id, 
     USER.firstname, 
     USER.lastname, 
     ... 
     COALESCE(EMPLOYEE.title, '') title, 
     ... 
FROM USER 

...它基本上是说,如果EMPLOYEE.titleNULL,然后返回和使用''代替。我的理解是否正确?

+0

什么部分似乎令人困惑?如果参数1为空,它将返回第二个参数。如果它为空,它将返回第三个参数.....等等。如果每个参数都为null,则它返回null。 – Ash

+0

现在没事了@AshwinNair。感谢您的时间。 – Grateful

回答

1

假设EMPLOYEE.title等于'CEO'。如果我们这个插头插入COALESCE功能,我们的查询看起来是这样的:

SELECT COALESCE('CEO', '') sub_sector; 

如果我们跑了,我们会得到'CEO'。现在我们假设EMPLOYEE.titleNULL。如果我们把它插入到该COALESCE功能,我们的查询看起来是这样的:

SELECT COALESCE(NULL, '') sub_sector; 

如果我们运行的,我们会得到''因为COALESCE回报在其参数列表中的第一个非空值。由于第一个值是NULL,它会检查下一个值'',它不是NULL,因此它会返回它。

在查询的情况下,如果字段EMPLOYEE.title的值为NULL,则COALESCE函数将返回''

+0

明白了。谢谢。 – Grateful