SQL中经典面试题

SQL中经典面试题

前言:在面试过程中,sql的题目少不了,其中分享两道自己在面试过程中遇到的题目

知识点 CASE WHEN 语法

CASE WHEN condition THEN result 
[WHEN ...] 
[ELSE result] 
END 

1.原表course: 
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 : select courseid,coursename,score,(case when score>=60 then 'pass' else 'fail' end) as mark from                             course;

         oracle:  select courseid, coursename ,score ,decode(sign(score-60),-1,'fail','pass') as mark from course;


2.有表tbl_test,记录内容如下所示:

代码        名称

1            a

2            b

11           c

22           d

(代码11表示为1的下级,22为2的下级)

通过一条sql句子得出如下结果

代码        名称        有无下级

1            a            有

2            b            有

11          c            无

22          d            无

解答: select 代码,名称,(case when 代码 <=2 then '有' else '无' end) as 有无下级 from tbl_test; 


猜你喜欢

转载自blog.csdn.net/cx17521000200/article/details/80558351