sql面试题01

最近准备面试,提前看会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

猜你喜欢

转载自blog.csdn.net/wdhouyigege/article/details/80733326