SQL刷题日记22.7.22——584. 寻找用户推荐人

给定表 customer ,里面保存了所有客户信息和他们的推荐人。

+------+------+-----------+
| id | name | referee_id|
+------+------+-----------+
| 1 | Will | NULL |
| 2 | Jane | NULL |
| 3 | Alex | 2 |
| 4 | Bill | NULL |
| 5 | Zack | 1 |
| 6 | Mark | 2 |
+------+------+-----------+
写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。

对于上面的示例数据,结果为:

+------+
| name |
+------+
| Will |
| Jane |
| Bill |
| Zack |
+------+

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-customer-referee

题目如上
一拿到题感觉非常的简单啊,不知道怎么才能不通过。
啪的一下,很快啊!我就wa了。

一开始我的思路就是判断不等于2就可以了(referee_id != 2)。但是值得注意的是,NULL不能进行等于和不等于的判断,只能用is NULL 和 is not NULL来进行判断。所以单纯的referee_id != 2不能判断出NULL的数据,所以测试用例只能返回一个Zack,其他的都不会返回。

正确的应该是
select name
from customer
where referee_id != 2 or referee_id is NULL

前一个筛选出所有有推荐人的用户中,不是2号用户推荐的人,后一个筛选出没有推荐人的人(没有推荐人肯定就不是二号推荐的)

posted @   Eumenides丶  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示