3.4 流程控制函数 [重点]
2020年3月30日
12:33
if函数：if(表达式成立，返回值，否则返回值)
SELECT *,IF(销售数量>200,'优秀','一般') FROM `销售表`
第一种情况：
case函数:(类似咱们Excel的switch函数)
语法：
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
….
else 要显示的值n或语句n;
end
例如：大类名是果菜的售价涨价10%，肉涨价20%，副食涨价5%
SELECT `商品名称`,`进价`,`售价`,
CASE 大类编码
WHEN 01 THEN 售价*1.1
WHEN 02 THEN 售价*1.2
WHEN 03 THEN 售价*1.05
ELSE 售价
END AS 新售价
FROM `商品表`;
第二种情况：
语法：
case
when 条件1 then 要显示的值1或语句1;
when 条件2 then 要显示的值2或语句2;
….
else 要显示的值n或语句n;
end
例如：销量大于250的，优；大于150的，良；大于100，中；否则返回差
SELECT `店号`,`商品编码`,`销售数量`,
CASE
WHEN `销售数量`>250 THEN '优'
WHEN `销售数量`>150 THEN '良'
WHEN `销售数量`>100 THEN '中'
ELSE '差'
END AS 评价
FROM `销售表`;
第一种情况case大类编码，是因为大类编码里面包含很多种类
第二种情况case不需要加任何东西，是因为销售数量只有一个