最近准备面试,提前看会sql方面的面试题。
第一题:
原表:
courseid coursename score-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
为了便于阅读, 查询此表后的结果显式如下( 及格分数为60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
---------------------------------------------------
写出此查询语句
在mysql中的写法 使用case----when语句
select courseid,coursename,score,
case
when (score - 60) >= 0 then 'pass'
else 'fail'
end as mark
from ss_1
第二题:
create table ss_2(
id int IDENTITY,
department varchar(12)
)
select * from ss_2
insert into ss_2 values('设计')
insert into ss_2 values('市场')
insert into ss_2 values('售后')
/*
结果
id department
1 设计
2 市场
3 售后
*/
create table ss_3(
id int IDENTITY,
dptID int,
name varchar(12)
)
insert into ss_3 values(1,'张三')
insert into ss_3 values(1,'李四')
insert into ss_3 values(2,'王五')
insert into ss_3 values(3,'彭六')
insert into ss_3 values(4,'陈七')
/*
用一条SQL语句,怎么显示如下结果
id dptID department name
1 1 设计 张三
2 1 设计 李四
3 2 市场 王五
4 3 售后 彭六
5 4 黑人 陈七
*/
SELECT
ss_3.* ,
IFNULL(department,'黑人') as department
FROM
ss_2 right join ss_3
on ss_3.dptID = ss_2.ID