首页 > 解决方案 > Leetcode 数据库 584. COALESCE(referee_id,0) 含义

问题描述

我试过 leetcode 584 数据库查询挑战 这是挑战 问题

论坛上一个人的回答告诉我答案应该是:

SELECT name FROM customer WHERE COALESCE(referee_id,0) <> 2;

我知道COALESCE FUNCTION是关于。但是,我不知道为什么将括号中的0作为参数以及代码中的逻辑"COALESCE(referee_id,0)<>2" 我希望有人可以帮助我解释atWHERE子句的逻辑。非常感谢,我很感激。

标签: mysqlsql

解决方案


如果referee_idNULLreferee_id <> 2也会是NULL,所以不正确。coalesce(referee_id, 0) <> 2将与0 <> 2when referee_idwasNULL0 <> 2is true 相同。

根据练习,应包括具有 areferee_id的客户。NULL所以这coalesce(referee_id, 0) <> 2就是使用的原因。

但是我宁愿写

...
WHERE referee_id <> 2
       OR referee_id
...

因为如果想要更改查询以检查具有referee_id0. 只需更改文字就会排除带有 areferee_id的行NULL


推荐阅读