• sql语句 面试题



    ql语句 面试题

     

    自动编号   学号   姓名 课程编号 课程名称 分数

    1        2005001  张三  0001      数学    69

    2        2005002  李四  0001      数学    89

    3        2005001  张三  0001      数学    69

    4  2005001  张三  0003   语文    80

    (1) 查询数学分数在表中第10名到第15名的学生信息

    (2) 用一条SQL语句 查询出每门课都大于80分的学生姓名

    满意答案

    /8-)P☆Z☆L 12级 2012-05-04

    这个简单,看答案,采纳吧~
    第一题是,用双top结构就可以查出来
    1,select * from 学生表 where 学号 in
    (select top 5 学号 from 成绩表 where 学号 not in(select top 10 学号 from 成绩表 order by 分数) order by 分数)

    第二题是比较简单,用复合函数就行了,having
    select 姓名 from 成绩表 group by 姓名 having avg(分数)>80
    采纳吧~
    5
    提问者 的感言: 打那么多不容,只能选两个答案,我也没试,应该是对的 2012-09-05

    满意答案

    随风 17级 2012-05-04

    select * from table where 课程='数学' order by 分数 desc limit 10,5;


    select * from (select xuehao, sum(case when fenshu>80 then 1 else 0 end) as shumu from table  group by xuehao ) a where shumu>课程数
    5
    提问者 的感言: 3Q 2012-09-05

    其他回答(5)

    ooo 9级 2012-05-04

    select  top 5 * from (select top 15 * from table order by 分数 where 课程名称=数学 desc )t order by t.分数

    select t.姓名 from (select 姓名,min(分数) as 最小 from cjb group by 姓名 having min(分数)>85)t 

     

    LG 1级 2012-05-04

    什么数据库
     

    2级 2012-05-07

    (1)

    sql server数据库:

        select top 5  * from 表名 where 课程名称="数学" not in

        ( select top 5*2  * from 表名 where 课程名称="数学" order by 分数 desc);  

        5*2的意思:5乘(要查询的页数-1)

    Oracle 数据库:

       select * from (select rownum r,  * from 表名  where 课程名称="数学" and r between (pageIndex-1)*5 and pageIndex*5 order by 分数 desc);

      pageIndex的意思:要查询的页数,这里pagIndex是3

       

    (2)select 姓名 from 表名 where 学号="..." and 分数>80 ;

    (条件有学号,因为一个学生他有几门课的成绩)

     

    随风 3级 2012-05-07

    第一题

    如果是sql2005以上版本的可以用,sql2000不支持

    select top 4 * from dbo.teacher order by t_salary desc
    except
    select top 1 * from dbo.teacher order by t_salary desc

    如果是sql2000可以用


    select top 3 * from (select top 4 * from 学生表 order by 分数 desc) a order by 分数

    补充:

    1.select top5 * from  table where 学号 not in(select top10 学号 form table order by 分数where  课程=‘数学’desc) order by 分数

    2.select 姓名  from table where 学号 not in(select 学号 from table where 分数<=80)

     

    两蛋一星 6级 2012-05-16

    1)  select top 6  * from table where id in( select top 15 id from table where 课程名称=‘数学’ order by 分数 desc) order by 分数 ASC
    2) select 姓名 from table group by 姓名  having avg(分数)>80
  • 相关阅读:
    P6585 中子衰变
    [APIO2020]有趣的旅途
    CF1354F Summoning Minions
    CF1361C Johnny and Megan's Necklace
    CF1368E Ski Accidents
    CF1458C Latin Square
    CF1368F Lamps on a Circle
    用户和组的管理
    Windows命令
    1
  • 原文地址:https://www.cnblogs.com/edwardsun/p/3470619.html
Copyright © 2020-2023  润新知