select
sum(case when count_money > 0 then count_money else 0 end) as sum_receipt,
sum(case when count_money < 0 then count_money else 0 end) as sum_paid
from tableName;
- 可以发现,case when和if函数的功能是相同的,if的使用更简洁直观
- 条件复杂时,使用case when,条件简单时,使用if()
今天群里有人问了个问题是这样的: 然后有群友是这样回答的 代码如下: select name,sum(case when stype=4 then money*(-1) else money end ) as M from table group by name 我想了想,应该可以用IF函数 于是改了下 代码如下: select name,sum(money*IF(stype=4,-1,1)) as M from table group by name 两种方式那种更效率还未测试。
您可能感兴趣的文章:MySQL 统计查询实现代码如何
查询各科成绩最高分、最低分和平均分,以如下形式显示:课程 ID,课程 name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率(及格为>=60,中等为:70-80,优良为:80-90,优秀为:>=90)。
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
select c.ci.
select *,if(sva=1,"男","女") as ssva from taname where sva != ""
select
CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''
多个if else情况的实现举例:
SELECT
CASE 1 WHEN 1 THEN 'one'
MySQL中有一个用于判断多种情况的语句,类似于java中的switch…case,在写SQL过程中需要用到case when嵌套,在这里记录一下,以防忘记。
简单例子:
SELECT
WHEN ISNULL(work_order_no) THEN
(CASE WHEN 2 > 1 THEN 11 ELSE 22 END)
(CASE WHEN 1 > 0 THEN 33 ELSE 66 END)
qk_20030102
WHERE
work_or
2.将学生按照性别区分
我们一般的写法就是
使用group by进行分组。
select t.ssex, count(t.sname) from STUDENT t group by t.ssex;
如果...
本文讲述了mysql中insert与select的嵌套使用的方法,对于初学MySQL的朋友有一定的借鉴价值。
这里需要实现在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现该功能需求。具体情形是:有三张表a、b、c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段。对于这种情况,我们可以使用如下的语句来实现:
INSERT INTO db1_name(field1,field2) SELECT field1,field2 FROM db2_name
当然,上面的语句比较适合两个表的数据互插,如果多个表就不适应了。对于多个表,我们可以先将需要查询的字段j
举例如下: 数据表为DemoTable,字段有id, condition1,condition2,condition3,condition4,condition5 要求是查询DemoTable中,condition1,condition2,condition3,condition4,condition5五个字段中符合任意两个或两个以上的条件的内容。 可使用case when来实现这个条件,需要嵌套子查询语句 sql语句代码示例如下: 代码如下: SELECT * FROM DemoTable WHERE ((SELECT CASE 1 WHEN condition1满足条件 THEN 1 E
CREATE TABLE `wf_task` (
`id` varchar(32) NOT NULL,
`buss_no` varchar(128) NOT NULL DEFAULT '' COMMENT '订单号',
`cust_id` varchar(32) DEFAULT NULL COMMENT '客户ID',
`cust_name` varchar(64) DEFAULT NULL COMMENT '
其中,condition是条件表达式,value是需要被求和的字段或表达式,table_name是需要进行操作的表名。在条件表达式中,可以使用比较运算符(如=、<、>)和逻辑运算符(如AND、OR、NOT)。
例如,如果需要统计表orders中所有订单中价值大于1000的商品数量,可以使用如下语句:
SELECT SUM(CASE WHEN value > 1000 THEN 1 ELSE 0 END) FROM orders;
该语句将返回一个整数,表示符合条件的商品数量。