-
Notifications
You must be signed in to change notification settings - Fork 0
/
Using Null.sql
37 lines (29 loc) · 1.66 KB
/
Using Null.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#List the teachers who have NULL for their department.
SELECT name
FROM teacher
WHERE dept IS NULL;
#Note the INNER JOIN misses the teachers with no department and the departments with no teacher.
SELECT teacher.name, dept.name
FROM teacher INNER JOIN dept ON teacher.dept = dept.id;
#Use a different JOIN so that all teachers are listed.
SELECT DISTINCT teacher.name, dept.name
FROM teacher LEFT JOIN dept ON teacher.dept = dept.id;
#Use a different JOIN so that all departments are listed.
SELECT DISTINCT teacher.name, dept.name
FROM teacher RIGHT JOIN dept ON teacher.dept = dept.id;
#Use the COALESCE function and a LEFT JOIN to print the teacher name and department name. Use the string 'None' where there is no department.
SELECT teacher.name, COALESCE(dept.name, 'None')
FROM teacher LEFT JOIN dept ON teacher.dept = dept.id;
#Use COUNT to show the number of teachers and the number of mobile phones.
SELECT COUNT(name), COUNT(mobile)
FROM teacher;
#Use COUNT and GROUP BY dept.name to show each department and the number of staff. Use a RIGHT JOIN to ensure that the Engineering department is listed.
SELECT dept.name, COUNT(teacher.id)
FROM teacher RIGHT JOIN dept ON teacher.dept = dept.id
GROUP BY dept.name;
#Use CASE to show the name of each teacher followed by 'Sci' if the teacher is in dept 1 or 2 and 'Art' otherwise.
SELECT name, (CASE WHEN dept = 1 OR dept = 2 THEN 'Sci' ELSE 'Art' END)
FROM teacher;
#Use CASE to show the name of each teacher followed by 'Sci' if the teacher is in dept 1 or 2, show 'Art' if the teacher's dept is 3 and 'None' otherwise.
SELECT name, (CASE WHEN dept = 1 OR dept = 2 THEN 'Sci' WHEN dept = 3 THEN 'Art' ELSE 'None' END)
FROM teacher;