前言:在面试过程中,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;