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; 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值