case when then else end如果判断条件太长,请问可以复用条件 或者在 then里面生成2个字段的结果吗?
SELECT '五合一水果罐头' AS name,'罐头加工' AS type,
CASE
WHEN sum(safe_additive) > (condition...)
THEN '合格' ELSE '不合格'
END AS quality
FROM t_table
WHERE additive_type= '一类';
上面能够判断到产品是 合格 还是 不合格,但是我还想要根据 合格 和 不合格 增加一个字段 储存后续处理,例如:
SELECT '五合一水果罐头' AS name,'罐头加工' AS type,
(CASE
WHEN sum(safe_additive) > (condition...)
THEN '合格' ELSE '不合格'
END AS quality),
(CASE
WHEN sum(safe_additive) > (condition...)
THEN '入库' ELSE '销毁'
END AS process),
FROM t_table
WHERE additive_type= '一类';
但是这里有个问题: condition.. 是一条非常长的 sql, 这样复制粘贴 两倍长度看着很夸张,有没有方法在上面的sql then的位置生成两个字段(quality 和 process)? 或者下面case when 可以根据上面quality 来判断 生成 process 呢? 又或者其它方法?
相关推荐
sql学习之CASE WHEN THEN ELSE END的用法
主要介绍了sql学习之CASE WHEN THEN ELSE END的用法,需要的朋友可以参考下
case when和sum case when 写法及拼接字段
1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType
MySQL中使用case when 语句实现多条件查询的方法
举例如下: 数据表为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
SQL中的case…when…还能这么用(计算好评率、计算出有条件的字段的数量)
文章目录SQL之CASE WHEN用法详解场景1:有分数score,score=60返回及格,score>=80返回优秀场景2:现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。场景3:经典行转列,并配合聚合函数做统计,现要求统计各个城市,总共使用了多少水耗、电耗、热耗,使用一条SQL语句输出结果场景4:CASE WHEN中使用子查询,根据城市用电量多少,计算用电成本。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。场景5:结合max聚合函数一道真实的面试题 SQL之CASE WHEN用法详解 简单CASE WH
SQL集合函数中case when then 使用技巧
我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' else '女' end) AS sex from studentInfo


数据库

