8 NULL值
NULL, INNER JOIN, LEFT JOIN, RIGHT JOIN1.
1. 列出學系department是NULL值的老師。為何不能用 =。你可能會以為 dept=NULL 是可行的,但它不是。你要使用dept IS NULL
select name
from teacher
where dept is null
***2.注意INNER JOIN 不理會沒有學系的老師及沒有老師的學系。 ***
SELECT teacher.name,dept.name
FROM teacher INNER JOIN dept ON (teacher.dept=dept.id)
***3.使用不同的JOIN(外連接),來列出全部老師。 ***
select teacher.name,dept.name
from teacher left join dept on(teacher.dept=dept.id)
***4.使用不同的JOIN(外連接),來列出全部學系。 ***
select teacher.name,dept.name
from teacher right join dept on(teacher.dept=dept.id)
Using the COALESCE function
合并
COALESCE接受任意数量的参数,并返回不为null的第一个值。
如果x不为NULL,则COALESCE(x,y,z)= x
如果x为NULL且y不为NULL,则COALESCE(x,y,z)= y
如果x和y为NULL但z不为NULL,则COALESCE(x,y,z)= z
如果x和y和z均为NULL,则COALESCE(x,y,z)= NULL
当您要将NULL值替换为其他值时,COALESCE可能会很有用。在此示例中,您将显示每个拥有聚会的MSP的聚会名称。对于没有聚会的MSP(例如Canavan,Dennis),您将显示字符串None。
5.Use COALESCE to print the mobile number. Use the number ‘07986 444 2266’ if there is no number given. Show teacher name and mobile number or '07986 444 2266’
select teacher.name,coalesce(mobile,'07986 444 2266')
from teacher left join dept on(teacher.dept=dept.id)
6.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,