MySQL学习-- case表达式

复制代码
-- case 表达式语法
CASE SEX
WHEN 'F' THEN 'Female'
ELSE 'Male'
END AS SEX; //这里的as sex是以sex为列名,如不列的话,列名则为case sex
-- 等同于如下IF-THEN-ELSE
IF SEX = 'F' THEN
RETURN 'Female'
ELSE
RETURN 'Male'
ENDIF;

-- 示例:获取1980年后加入俱乐部的每个球员的号码、性别和名字。性别必须显示为'Female'或'Male'
SELECT PLAYERNO, 
CASE SEX
WHEN 'F' THEN 'Female'
WHEN 'M' THEN 'Male' 
END AS SEX,
NAME
FROM PLAYERS
WHERE JOINED > 1980;

-- 多个when条件可以包含到一个CASE表达式中
CASE TOWN
WHEN 'Straford' THEN 0
WHEN 'Plymouth' THEN 1
WHEN 'Inglewood' THEN 2
ELSE 3
END ;

--示例:假设网球俱乐部把所有罚款划分为3类。第一类low,包括所有大于0小于等于40的罚款,第二类moderate包含所有在41到80之间的罚款,第三类high包含所有大于80的罚款。接下来,找出每次罚款的支付编号,数量以及相应的分类

SELECT PAYMENTNO,
AMOUNT,
CASE 
WHEN AMOUNT >=0 and AMOUNT<=40 THEN 'low'
WHEN AMOUNT >=41 and AMOUNT <=80 THEN 'moderate'
WHEN AMOUNT >= 81 THEN 'hign'
ELSE 'incorrent'
END AS TYPE
from PENALTIES;

-- 示例:找出属于low一类的罚款的编号
SELECT PAYMENTNO,AMOUNT
FROM PENALTIES
where CASE 
WHEN AMOUNT>=0 and AMOUNT <=40 THEN 'low'
WHEN AMOUNT >=41 and AMOUNT <= 80 then 'moderate'
when AMOUNT >80 then 'hign'
ELSE 'incorrent'
end = 'low';

 

 
复制代码

 

posted @   美女爱找茬  阅读(105)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-04-02 jmeter测试结果分析及改进方案
2020-04-02 jmeter函数使用方法
2020-04-02 解决nginx大量出现报错类型为:13:permission denied (403 forbidden)的四种方法
2020-04-02 Jmeter + selenium + ant 接口自动化并生成报告
2020-04-02 jmeter分布式并发操作步骤
点击右上角即可分享
微信分享提示