mysql 解释字段,case…END语句

一、解释字段

  • 对查询结果的解释分析(无解释,不查询)
  • 在select执行之前,在临时表动态生成一个列;列中内容用于对临时表每一行数据进行解释分析;
  • 解释数据来源:
    1、来源于聚合函数
    2、来源于独立子查询
    3、来源于开发人员手动设置常量
    4、来源于case…END语句

二、case…END 语句

  • 目的是为临时表的每一行数据给出一个动态的分析结果;
  • 1、case…END在select执行之前执行
  • 2、case…END执行时遍历临时表的每一行数据,在遍历时为每一行数据提供一个动态解释内容
  • 3、case…END执行完毕时,生成解释数据作为一个独立的列出现在临时表

1、case…END 区间判断

类似于if() ELSE if() ELSE :格式
SELECT (case
when 区间判断 then ‘解释数据’
when 区间判断 then ‘解释数据’
ELSE … END) AS 列名 FROM TABLE
例子:

SELECT doc_no, use_work_hour, (SELECT AVG(use_work_hour) FROM dispatch_list) AS avg_hour, (case 
when use_work_hour<(SELECT AVG(use_work_hour) FROM dispatch_list) then '小于平均工时' 
when use_work_hour>(SELECT AVG(use_work_hour) FROM dispatch_list) then '大于平均工时'
ELSE '等于平均工时' END ) AS 等级 FROM dispatch_list;

在这里插入图片描述

2、case…END 等值判断

类似于switch;格式:
SELECT (case 字段名称
when 值 then ‘解释数据’
when 值 then ‘解释数据’
ELSE … END) AS 列名 FROM TABLE

SELECT doc_no, use_work_hour, (case use_work_hour 
	when 2.2 then '2.2' 
	when 0.0 then '0.0'
	ELSE '其他' END ) AS 等级 FROM dispatch_list;

在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值