MySQL使用case when报错问题记录
来源:互联网 发布:d3.js pdf 编辑:程序博客网 时间:2024/06/05 01:17
在复习SQL面试题时,遇到了一个问题,随手记录一下,以下环境是在MySQL数据库中。
有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来:
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 数学 英语
及格 优秀 不及格
#创建相关表CREATE TABLE ScoreReport( 语文 VARCHAR(20), 数学 VARCHAR(20), 英语 VARCHAR(20))INSERT INTO ScoreReportVALUES (90,87,92);SELECT * FROM ScoreReport;#实现效果SELECT (CASE WHEN 语文>=80 THEN '优秀' WHEN 语文>=60 THEN '及格' ELSE '不及格') AS '语文',(CASE WHEN 数学>=80 THEN '优秀' WHEN 数学>=60 THEN '及格' ELSE '不及格') AS '数学',(CASE WHEN 英语>=80 THEN '优秀' WHEN 英语>=60 THEN '及格' ELSE '不及格') AS '英语'FROM ScoreReport;
但是实现效果的那段代码执行后会报错,错误信息如下: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') as 语文,
(case when 数学>=80 then '优秀'
when 数学>=60 then '及格'
e' at line 4
这里主要是case when语法错误,MySQL操作查询结果case when then else end,注意后面还有end结尾,不能漏掉,不然会报错;
将上面的代码改成如下所示就没问题了:
SELECT (CASE WHEN 语文>=80 THEN '优秀' WHEN 语文>=60 THEN '及格' ELSE '不及格' END) AS '语文',(CASE WHEN 数学>=80 THEN '优秀' WHEN 数学>=60 THEN '及格' ELSE '不及格' END) AS '数学',(CASE WHEN 英语>=80 THEN '优秀' WHEN 英语>=60 THEN '及格' ELSE '不及格' END) AS '英语'FROM ScoreReport;
阅读全文
1 0
- MySQL使用case when报错问题记录
- case when 的使用,mysql
- Mysql case when 使用count
- MySQL CASE WHEN END使用
- mysql case when嵌套使用
- 记录一个mysql的case when用法
- mysql中case when then 的使用
- mysql case when then end使用方式
- Mysql数据库if语句case when使用
- MySQL 的CASE WHEN 语句的使用
- mysql case when 中可以使用and
- mysql case when
- mysql case when
- mysql case when
- mysql 语句case when
- mysql 语句case when
- mysql 语句case when
- mysql 语句case when
- 常见面试题
- webstorm 设置ES6语法支持以及添加vuejs开发配置
- Ubuntu修改环境变量
- MongoDB常用命令汇总之插入、更新和删除操作详解。
- HTML5开发和布局(待补充)
- MySQL使用case when报错问题记录
- linux 下PCIE控制器设备树 学习
- log中的Total PSS by OOM adjustment
- java之约会
- Linux基础
- java学习之路(4)-常量 、变量与数据类型
- CSS基础属性2
- CSS第一天学习
- html绘制课程表