1、取出sql表中第31到40的记录(以自动增长ID为主键)
sql server方案:
select top 10 * from t where id not in (select top 30 id from t order by id ) orde by id
mysql方案:
select * from t order by id limit 30,10
oracle方案:
select * from (select rownum r,* from t where r<=40) where r>30
2、用一条SQL语句 查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
准备数据的sql代码:
create table score(id int primary key auto_increment,name varchar(20),subject varchar(20),score int);
insert into score values
(null,‘张三‘,‘语文‘,81),
(null,‘张三‘,‘数学‘,75),
(null,‘李四‘,‘语文‘,76),
(null,‘李四‘,‘数学‘,90),
(null,‘王五‘,‘语文‘,81),
(null,‘王五‘,‘数学‘,100),
(null,‘王五 ‘,‘英语‘,90);
思路:转化为查出有<80分的学生姓名,然后排除这些学生剩下的就都是>80的了
select distinct name from score where name not in (select distinct name from score where score<=80)
3、所有部门之间的比赛组合
一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
select a.name, b.name from team a, team b where a.name < b.name
时间: 2024-10-27 10:13:31