mysql case as 使用小结

说明:case  的用法可以在不改变原有数据库的基础上自定义显示字段名。如下图
原表数据 

我们要这样的效果,PAmount字段拆分显示为 收入和支出,其中正数为收入,负数为支出,收入时支出为0,支出时收入为0,如下图,

此时使用case 即可。
case的语法:
(case  when 条件 then 结果  else 结果
end)
as 自定义字段名

下面以上面例子来说明
1.创建一个表 Pcase;
create table FCase(
PNumber int  not null,
PAmount int  not null
);
2.为表中添加数据
INSERT into  FCase values(1,-10);
INSERT into FCase values(2,30);
INSERT into FCase values(3,10);
INSERT into FCase values(5,0);
INSERT into FCase values(4,-50);

3.默认查询结果
select PNumber,PAmount from FCase;

4.使用 case,as 来自定义查询
select PNumber ,
(CASE
WHEN PAmount>0 THEN PAmount
else 0
END
) as 收入 ,
(CASE 
WHEN PAmount<0 then ABS(PAmount)
ELSE 0
END )as 支出 from FCase;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL 中的 `CASE WHEN` 语句用于实现类似于条件语句(if-then-else)的功能,可以在查询中对字段的值进行判断并返回不同的结果。语法如下: ``` CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END ``` 其中,`condition1`, `condition2`, ... 分别表示需要判断的条件,`result1`, `result2`, ... 分别表示当条件成立时的结果,`ELSE result` 表示所有条件都不成立时的结果。 举个例子: ``` SELECT id, name, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' ELSE 'C' END AS grade FROM students; ``` 上面的语句中,对学生的成绩进行了判断,将其分为 A、B 或 C 等级。 ### 回答2: MySQL中的CASE WHEN语句是一种非常有用的条件语句,用于根据给定的条件执行不同的操作。它通常用于SELECT语句的查询结果中或UPDATE语句的更新操作中。 CASE WHEN语句的基本语法如下: ``` CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END ``` 其中,condition1、condition2等是可以被评估为TRUE或FALSE的条件表达式,result1、result2等是条件满足时要返回的结果。 CASE WHEN语句的执行顺序是从上到下,一旦条件满足,就会执行对应的结果,并且立即退出CASE WHEN语句。 以下是一个示例: ``` SELECT name, score, CASE WHEN score >= 90 THEN '优秀' WHEN score >= 80 THEN '良好' WHEN score >= 60 THEN '及格' ELSE '不及格' END AS grade FROM students; ``` 这个例子中,根据学生的分数score,将其等级grade分为优秀、良好、及格和不及格四个等级,然后将结果显示在查询结果中。 CASE WHEN语句也可以嵌套使用,以实现更复杂的逻辑判断。可以使用AND、OR、NOT等逻辑操作符来组合条件表达式。 总结来说,MySQL中的CASE WHEN语句是一种非常灵活和强大的条件表达式,在查询和更新操作中可以根据不同的条件执行不同的操作,以满足实际需求。 ### 回答3: MySQLCASE WHEN语句是一种强大的条件表达式,它可以在查询中根据不同的条件进行分支判断并返回不同的结果。 CASE WHEN语句的基本语法如下: ``` CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE else_result END ``` 该语句首先根据给定条件逐个进行判断,一旦找到满足条件的分支,就会返回对应的结果。如果所有条件都不满足,则返回ELSE子句定义的else_result。 CASE WHEN语句可以支持多层嵌套,可以在WHEN子句中使用各种比较操作符(如等于、大于、小于等)和逻辑操作符(如AND、OR)进行条件的组合。 例如,假设有一个名为students的表,其中有字段name和score,我们可以使用CASE WHEN语句来根据不同的分数范围对学生进行评级: ``` SELECT name, CASE WHEN score >= 90 THEN '优秀' WHEN score >= 80 THEN '良好' WHEN score >= 70 THEN '中等' WHEN score >= 60 THEN '及格' ELSE '不及格' END AS grade FROM students; ``` 上述查询将根据学生的分数范围返回相应的评级,并将结果命名为grade。 总之,MySQLCASE WHEN语句是一种强大的条件表达式,可以根据不同的条件进行分支判断,非常适合在查询中进行数据转换和逻辑判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值