吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 621|回复: 4
收起左侧

[求助] 统计完成4个项目学习的学生名单casewhen嵌套初步应用修正补充

[复制链接]
zhaojf1978 发表于 2026-2-5 17:46
https://www.52pojie.cn/thread-1910686-1-1.html统计完成4个项目学习的学生名单casewhen嵌套初步应用,原语句少了'缺跑步、游泳、足球' 的情况,修正如下:

SELECT *, CASE when z."4" not like '%跑步%' then -- 缺跑步
case when z."4" not like '%游泳%' and z."4" not like '%篮球%' and z."4" not like '%足球%' then '缺跑步、游泳、篮球、足球'
when z."4" not like '%篮球%' and z."4" not like '%游泳%' then '缺跑步、游泳、篮球'
when z."4" not like '%篮球%' and z."4" not like '%足球%' then '缺跑步、篮球、足球'
when z."4" not like '%游泳%' and z."4" not like '%足球%' then '缺跑步、游泳、足球' --原语句缺失新增加
when z."4" not like '%游泳%' then '缺跑步、游泳'
when z."4" not like '%足球%' then '缺跑步、足球'
when z."4" not like '%篮球%' then '缺跑步、篮球'
else '缺跑步' end
when z."4"not like '%游泳%' then
--有跑步,缺游泳
case when z."4" not like '%足球%' and z."4" not like '%篮球%' then '缺游泳、篮球、足球'
when z."4" not like '%篮球%' then '缺游泳、篮球'
else '缺游泳' end
when z."4" not like '%篮球%' then
--有跑步,有游泳,缺篮球
case when z."4" not like '%足球%' and z."4" not like '%篮球%' then '缺篮球、足球'
else '缺篮球' end
when z."4" not like '%足球%' then '缺足球'
ELSE '已完成' END '备注'
FROM zhaojf04 z



另外,针对这个统计,我想了另外一种写法,补充如下:
--统计完成跑步、游泳、篮球、足球四项的完成情况

SELECT *, case when z."4" not like '%跑步%' and z."4" not like '%游泳%' and z."4" not like '%篮球%' and z."4" not like '%足球%' then '缺跑步、游泳、篮球、足球'
when z."4" not like '%跑步%' and z."4" not like '%篮球%' and z."4" not like '%游泳%' then '缺跑步、游泳、篮球'
when z."4" not like '%跑步%' and z."4" not like '%篮球%' and z."4" not like '%足球%' then '缺跑步、篮球、足球'
when z."4" not like '%跑步%' and z."4" not like '%游泳%' and z."4" not like '%足球%' then '缺跑步、游泳、足球'
when z."4" not like '%游泳%' and z."4" not like '%足球%' and z."4" not like '%篮球%' then '缺游泳、篮球、足球'
when z."4" not like '%跑步%' and z."4" not like '%游泳%' then '缺跑步、游泳'
when z."4" not like '%跑步%' and z."4" not like '%足球%' then '缺跑步、足球'
when z."4" not like '%跑步%' and z."4" not like '%篮球%' then '缺跑步、篮球'
when z."4" not like '%游泳%' and z."4" not like '%篮球%' then '缺游泳、篮球'
when z."4" not like '%游泳%' and z."4" not like '%足球%' then '缺游泳、足球'
when z."4" not like '%足球%' and z."4" not like '%篮球%' then '缺篮球、足球'
when z."4" not like '%跑步%' then '缺跑步'
when z."4" not like '%游泳%' then '缺游泳'
when z."4" not like '%篮球%' then '缺篮球'
when z."4" not like '%足球%' then '缺足球'
ELSE '已完成' END '备注'
FROM zhaojf04 z



问题是目前实际是要统计完成跑步、游泳、篮球、足球、排球5项的完成情况,这个用枚举法好像太难写了,容易出现遗漏的情况,这次发帖主要想咨询下群里老师这个这个问题有没有好的解决方法,取长补短,感谢

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
outdoorreadbook + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

blfiag 发表于 2026-2-5 20:25
借鉴一般编程思路,每种项目可编码为2^n,然后统计所有项目编码之和。然后再用对应的过滤器进行求并,即可统计各种情况的结果
头像被屏蔽
几度夕阳红 发表于 2026-2-5 21:48
cg372101 发表于 2026-2-5 22:03
本帖最后由 cg372101 于 2026-2-5 22:07 编辑

SELECT *
FROM zhaojf04
WHERE
    科目内容 LIKE '%跑步%'
    AND 科目内容 LIKE '%游泳%'
    AND 科目内容 LIKE '%篮球%'
    AND 科目内容 LIKE '%足球%'
    AND 科目内容 LIKE '%排球%'
头像被屏蔽
cxb2468 发表于 2026-2-6 11:52
提示: 该帖被管理员或版主屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-2-20 15:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表