0
点赞
收藏
分享

微信扫一扫

SQL中的CASE WHEN 语法

前端王祖蓝 2022-04-30 阅读 121
sql

目录

一、语法说明

1、语法格式

2、说明

二、实例说明

1、需求说明

2、需求分析

3、代码编写

4、结果展示


一、语法说明

1、语法格式

CASE WHEN 条件1 THEN 执行语句1 
    [WHEN 条件2 THEN 执行语句2]
    ...
    ELSE 默认执行语句
END

2、说明

  • CASE语句会根据WHEN后面跟的条件的不同而执行不同的THEN语句,满足条件1则执行执行语句1。而WHEN语句是可以写多条的,如果判断的种类比较多,就可以写多条WHEN,相应的THEN语句也要和WHEN的数量保持一致。最后如果WHEN的条件都不满足,则会执行ELSE后的语句。
  • 条件语句是返回布尔语句的条件判断,当判断为true时执行THEN后的语句
  • THEN后面的执行语句的类型要与ELSE之后的保持一致
  • 最后的END表示CASE 语句结束

二、实例说明

1、需求说明

当前有两张数据表,分别为student表和exam表,数据如下

 

现在要列出每位学生的各科成绩,要求输出格式:姓名、学号、语文成绩、数学成绩、英语成绩,SQL怎么编写?

2、需求分析

姓名,学号字段来自student表,成绩字段来自exam表,所以需要两表关联

由于需要列出每一位学生的信息,所以student表为左连接的主表

在exam表中只有一列是关于成绩的字段,而最后结果却有三列时成绩,而且区分不同的科目的成绩,所以可以使用case when语句来区分

3、代码编写

SELECT 
	student.name 姓名
	,student.code 学号
	,CASE WHEN exam.subject="语文" THEN exam.score ELSE "" END 语文成绩
	,CASE WHEN exam.subject="数学" THEN exam.score ELSE "" END 数学成绩
	,CASE WHEN exam.subject="英语" THEN exam.score ELSE "" END 英语成绩
FROM
	student
LEFT JOIN
	exam
ON
	student.code=exam.code;

 

4、结果展示

 

举报

相关推荐

0 条评论