首页 > 数据库技术 > 详细

SQL题

时间:2017-08-19 16:28:08      阅读:229      评论:0      收藏:0      [点我收藏+]

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

  

  

 

SQL题

原文:http://www.cnblogs.com/javabg/p/7396863.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!