mysql - 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
子句的逻辑。非常感谢,我很感激。
解决方案
如果referee_id
是NULL
,referee_id <> 2
也会是NULL
,所以不正确。coalesce(referee_id, 0) <> 2
将与0 <> 2
when referee_id
wasNULL
和0 <> 2
is true 相同。
根据练习,应包括具有 areferee_id
的客户。NULL
所以这coalesce(referee_id, 0) <> 2
就是使用的原因。
但是我宁愿写
...
WHERE referee_id <> 2
OR referee_id
...
因为如果想要更改查询以检查具有referee_id
非0
. 只需更改文字就会排除带有 areferee_id
的行NULL
。
推荐阅读
- html - 如何在引导程序中在我的屏幕上均匀分布五列?
- python - python,linux:如何将整个硬盘驱动器作为一个原始二进制文件打开
- python - Python根据列表中的位置将符号映射到数据
- r - 选择分段回归中的断点数
- excel - 在 Excel 中的 Word 文档中插入可调整表格
- javascript - 快速错误处理:向前端发送消息
- java - 在 Java 类文件中使用 0xcafebabe 来识别字节顺序?
- c++ - 在 C++ 中多次调用给定函数时,有没有办法引发编译时错误?
- r - 为 R 数据框的一行中的所有文本添加下划线
- amazon-web-services - 为什么对 API Gateway 假定角色使用 Lambda 资源权限?