数据库每日一题 --- 第 14 天:用户推荐人
一、问题描述
给定表 customer
,里面保存了所有客户信息和他们的推荐人。
复制代码
写一个查询语句,返回一个客户列表,列表中客户的推荐人的编号都 不是 2。
对于上面的示例数据,结果为:
题目链接:用户推荐人
二、题目要求
样例
复制代码
考察
复制代码
三、问题分析
这一题就是一道普通的条件查询,但是要注意一点。我一开始直接使用下面的代码,
复制代码
结果查询之后的结果是只有Zack
这个名字,对于referee_id
为null
但是也满足题目条件的结果无法判断,因为 = 或 !=
只能判断基本数据类型,带 null 的列无法与值做比较。
所以,如果我们任然要使用这种方法时,需要在 where 语句的后面加一个referee_id is null
,这样的话就可以判断结果。
这里涉及到一个小小的知识点,为什么判断是否为空是is null
而不是=null
呢?
很奇怪,是不是?小学的时候学的=
就是表示相等关系。
但是null
表示不确定的值,本身它不与任何值相等(包括其本身)。
is null
判断某个字符是否为空,并不代表空字符或者是 0
等于 null 是判断某个值是否等于null
,所以不能使用=
,只能使用is null
或者is not null
来判断。
四、编码实现
复制代码
五、测试结果
版权声明: 本文为 InfoQ 作者【知心宝贝】的原创文章。
原文链接:【http://xie.infoq.cn/article/268d1f228887afb3eb8d2be75】。文章转载请联系作者。
评论