数据库每日一题 --- 第 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】。文章转载请联系作者。










评论