1、数据库 id name score

1 张** 72
2 王** 72
3 张*** 81
4 李**** 67
... ... ...
用两种方式查询student表中成绩为10~20名的学生

解决方法一:

select name from student order by score desc limit 9,10;

解决方法二:思路为新增一个伪列,伪列的是由1递增,取10-20即可

SET @rownum:=0;

SELECT name,score FROM(

SELECT 
  (@rownum := @rownum + 1) AS rownum,
  t.* 
FROM student t ORDER BY t.score DESC) tt

WHERE rownum BETWEEN 10 and 20;

2.having和not in

name subject score
褚一 语文 88
褚二 数学 77
张三 语文 85
张三 数学 99
李五   语文 89
李五 数学 84
李五 英语 93

 

题:查询 student表每门课都大于80 分的学生姓名

方法一:

SELECT name 
FROM student 
GROUP BY name 
HAVING MIN(score)>80;

方法二:

SELECT DISTINCT(name) FROM student WHERE name not in (SELECT DISTINCT(name) FROM student WHERE score <=80);

 

相关文章:

  • 2021-09-11
  • 2021-06-20
  • 2022-12-23
  • 2022-01-15
  • 2021-09-06
  • 2021-05-05
  • 2022-12-23
  • 2021-08-11
猜你喜欢
  • 2022-12-23
  • 2021-11-26
  • 2021-09-25
  • 2021-07-17
  • 2022-02-25
  • 2021-12-01
  • 2022-02-10
相关资源
相似解决方案