SQL题

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

SQL题的相关文章

两道sql题

部门周计划表  Hr_DepartPlanWeek : DepartMent部门名称,DepartMentID部门ID. 部门表   g_group: gname部门名称,gid部门id 根据DepartMentID  修改表 g_group的DepartMent字段 update Hr_DepartPlanWeek set DepartMent=t.gname from (select gname,gid from g_group left join Hr_DepartPlanWeek on

一个奇葩的SQL题,够强大。

困惑描述: 现有一张图片表,表里一个sort字段,这个字段是不重复的.不连续的数字.大致结构如下 create table Imgs( `id` bigint(20) NOT NULL AUTO_INCREMENT,  `src` varchar(255) NOT NULL , `sort` int(11) DEFAULT '0' ) 注:sqlserver请修改  AUTO_INCREMENT 为i dentity(1,1) 大致数据如下 id         src           so

sql题库答案

SQL 测验 结果:20/20 您的回答: 1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据? 您的回答:UPDATE 4.哪条 SQL 语句用于删除数据库中的数据? 您的回答:DELETE 5.哪条 SQL 语句用于在数据库中插入新的数据? 您的回答:INSERT INTO 6.通过 SQL,您如何从 "Persons" 表中选取 &

力扣sql题

组合两个表 表1: Person +-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键表2: Address +-------------+---------+| 列名 | 类型 |+-------------+-------

简说SQL题

题目描述 从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t. CREATE TABLE IF NOT EXISTS "titles" (     `emp_no` int(11) NOT NULL,     `title` varchar(50) NOT NULL,     `from_date` date NOT NULL,     `to_date` date DEFAULT NULL); 解答思路: 题目要求分组查询,这里自然想到gr

sql题总结

Student(S#,Sname,Sage,Ssex) 学生表       S#:学号:Sname:学生姓名:Sage:学生年龄:Ssex:学生性别Course(C#,Cname,T#) 课程表                    C#,课程编号:Cname:课程名字:T#:教师编号SC(S#,C#,score) 成绩表                             S#:学号:C#,课程编号:score:成绩Teacher(T#,Tname) 教师表                

一道SQL题考你数据库的使用能力

题目:数据库中存在例如以下数据,求用户终于剩余金额. 用户 类型 金额 A 存入 100 A 存入 200 A 取出 100 A 取出 200 A 存入 300 A 取出 300 本人Oracle接触的多些,所以给个Oracle的解决方法: Sum(Decode(...))能解决以上同类全部的问题,具体的我就不写了,你自己写的基于会深刻些! 如有更好的方法请各位留个言! 同求MySQL的最优实现方法,由于接下来将要使用MySQL数据库了!

一个SQL题

题目如图: 模拟题目建的表如下图: 答案: select t3.id,t3.name,max(t3.score) from (select t1.* from b t1,(select id,max(score) score from b group by id) t2 where t1.id=t2.id and t1.score<t2.score) t3 group by t3.id;

SQL语句统计每天、每月、每年的 数据

1.每年 select year(ordertime) 年, sum(Total) 销售合计 from 订单表 group by year(ordertime) 2.每月 select year(ordertime) 年, month(ordertime) 月, sum(Total) 销售合计 from 订单表 group by year(ordertime), month(ordertime 3.每日 select year(ordertime) 年, month(ordertime) 月,