SQL替换NULL值的显示

在数据查询中,有些字段的值为NULL,但是我们一般不会直接把NULL显示给用户,所以需要用其他方式替换一下,比如“NO VALUE”。

例如有下面两个表:
t_teacher

id  name
------------
1   teacher1
2   teacher2
3   teacher3
4   teacher4

t_course

id  name    tid
---------------
1   course1 2
2   course2 1
3   course3 2
4   course4 3
5   course5 5

如果我们将teacher表与course表进行左联接,那么效果是这样的:

SELECT t_teacher.id, t_teacher.`name`, t_course.`name` 
FROM `t_teacher` LEFT JOIN t_course ON t_teacher.id = t_course.tid;

输出结果:

id  name        name1
2   teacher2    course1
1   teacher1    course2
2   teacher2    course3
3   teacher3    course4
4   teacher4    null

可以看到最后一行的数据name1为null,但是这样不太友好,所以需要替换一下,我们用CASE处理一下这个字段:

SELECT t_teacher.id, t_teacher.`name`, (CASE WHEN t_course.`name` IS NULL THEN 'NO VALUE' ELSE t_course.`name` END) AS cname 
FROM `t_teacher` LEFT JOIN t_course ON t_teacher.id = t_course.tid;

输出结果:

id  name        cname
-----------------------
2   teacher2    course1
1   teacher1    course2
2   teacher2    course3
3   teacher3    course4
4   teacher4    NO VALUE

这样最后一行就显示了“NO VALUE”。

你可能感兴趣的:(SQL,MySQL)