mysql case when then
MySQL中的CASE WHEN THEN语句是一种条件语句,用于根据不同的条件执行不同的操作。它的语法如下:
CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END
其中,expression是要比较的表达式,value1、value2等是要比较的值,result1、result2等是对应的结果,default_result是当所有条件都不满足时的默认结果。
例如,以下语句将根据score字段的值返回不同的结果:
SELECT name, score, CASE WHEN score >= 90 THEN '优秀' WHEN score >= 80 THEN '良好' WHEN score >= 60 THEN '及格' ELSE '不及格' END AS result FROM students;
这将返回一个包含每个学生姓名、分数和结果的表格,其中结果根据分数的不同而不同。
mysql case when then 语句
MySQL的CASE WHEN THEN语句是一种条件表达式,用于根据不同的条件执行不同的操作。它的基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
其中,condition1
、condition2
等是条件表达式,result1
、result2
等是对应条件为真时的结果。如果所有条件都不满足,则返回result
。
下面是一个例子,假设有一个名为students
的表,包含学生的姓名和成绩字段:
SELECT name,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
以上语句将根据学生的成绩给出相应的等级,如果成绩大于等于90,则为优秀,如果成绩大于等于80,则为良好,以此类推。
mysql case when then else end用法
MySQL CASE WHEN THEN ELSE END 语句详解
基本语法结构
在MySQL中,CASE-WHEN-THEN-ELSE-END
是一种强大的控制流语句,允许执行基于不同条件返回不同的值的操作。基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
此结构可以嵌入到SQL查询的任何地方,只要期望得到单个表达式的上下文中即可[^1]。
数据转换示例
为了展示该功能的应用范围,在实际应用中经常用来做数据转换工作。例如将性别字段从数字编码转成文字描述:
SELECT
id,
name,
CASE gender
WHEN '0' THEN 'Female'
WHEN '1' THEN 'Male'
ELSE 'Unknown'
END AS gender_description
FROM users;
这段代码会读取表 users
中的数据,并根据 gender
字段的内容决定显示 "Male", "Female" 或者 "Unknown"[^3]。
排名计算实例
另一个常见的应用场景是在统计分析时实现自定义排名逻辑。比如按照销售额给员工打分并分配等级标签:
SELECT
employee_id,
sales_amount,
CASE
WHEN sales_amount >= 50000 THEN 'A级'
WHEN sales_amount BETWEEN 30000 AND 49999 THEN 'B级'
WHEN sales_amount < 30000 THEN 'C级'
ELSE '未定级'
END as performance_level
FROM employees_sales;
这里通过比较销售金额大小来确定绩效级别,并最终形成一个新的列 performance_level
来表示每个员工的表现层次[^2]。
结合 ORDER BY 进行排序
除了上述用途外,还可以利用 CASE-ELSE-END
实现更复杂的排序需求。例如按特定顺序排列某些类别项目:
SELECT *
FROM products
ORDER BY
CASE category
WHEN 'Electronics' THEN 1
WHEN 'Books' THEN 2
WHEN 'Clothing' THEN 3
ELSE 4
END;
这使得可以根据业务规则灵活调整记录之间的相对位置。
相关推荐
















