吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1040|回复: 5
收起左侧

[求助] SQL如何查询出三门成绩任意一门=100且任意一门=66的所有学生?

[复制链接]
灰灰狸 发表于 2023-4-4 23:23
成绩表:
姓名
语文成绩
数学成绩
英语成绩
张三
59
88
89
李四
82
56
90
王二
66
63
100

如何查询出三门成绩任意一门=100且任意一门=66的所有学生?

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

W7mLCytr 发表于 2023-4-5 00:34
select * from table where (A=100 or B=100 or C=100) and (A=66 or B=66 or C=66)
fly5cc 发表于 2023-4-5 00:44
goldli 发表于 2023-4-5 11:03
WITH src AS (
        SELECT Name,Y AS 'C'
        FROM dbo.Score
        UNION ALL
        SELECT Name,S
        FROM dbo.Score
        UNION ALL
        SELECT Name,E
        FROM dbo.Score
)
SELECT DISTINCT src.Name
FROM src
WHERE src.C =100 OR src.C = 66
cN2Fdgewewe1t6q 发表于 2023-4-5 14:26
通过临时表with的这个查询会把成绩有66或100的都查出来,不止成绩有66且100的情况。
cN2Fdgewewe1t6q 发表于 2023-4-5 14:46
id
Name
Y
S
E
1
张三
68
89
100
2
李四
66
66
23
3
王五
66
37
100


根据这个sql修改了一下,不过感觉还是那个(or)and(or)的更方便。


WITH src AS (
        SELECT Name,Y AS 'C'
        FROM  dbo.Score
        UNION ALL
        SELECT Name,S
        FROM  dbo.Score
        UNION ALL
        SELECT Name,E
        FROM  dbo.Score
)
SELECT src.Name, count(IF(src.C=100,1,null)) as score1, count(IF(src.C=66,1,null)) as score2
FROM src
GROUP BY src.Name
HAVING score1>=1 AND score2>=1


您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 00:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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