SQL面试题.docx
- 文档编号:2247545
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:15
- 大小:21.82KB
SQL面试题.docx
《SQL面试题.docx》由会员分享,可在线阅读,更多相关《SQL面试题.docx(15页珍藏版)》请在冰豆网上搜索。
SQL面试题
Sql常见面试题(总结)
1.用一条SQL语句查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
A:
selectdistinctnamefromtable where namenotin(selectdistinctnamefromtablewherefenshu<=80)
2.学生表如下:
自动编号 学号 姓名课程编号课程名称分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息
A:
deletetablenamewhere自动编号notin(selectmin(自动编号)fromtablenamegroupby学号,姓名,课程编号,课程名称,分数)
一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
你先按你自己的想法做一下,看结果有我的这个简单吗?
答:
selecta.name,b.name
fromteama,teamb
wherea.name 请用SQL语句实现: 从TestDB数据表中查询出所有月份的发生额都比101科目相应月份的发生额高的科目。 请注意: TestDB中有很多科目,都有1-12月份的发生额。 AccID: 科目代码,Occmonth: 发生额月份,DebitOccur: 发生额。 数据库名: JcyAudit,数据集: Select*fromTestDB 答: selecta.* fromTestDBa (selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBwhereAccID='101'groupbyOccmonth)b wherea.Occmonth=b.Occmonthanda.DebitOccur>b.Debit101ccur ************************************************************************************ 面试题: 怎么把这样一个表儿 year monthamount 1991 1 1.1 1991 2 1.2 1991 3 1.3 1991 4 1.4 1992 1 2.1 1992 2 2.2 1992 3 2.3 1992 4 2.4 查成这样一个结果 yearm1 m2 m3 m4 19911.11.21.31.4 19922.12.22.32.4 答案一、 selectyear, (selectamountfrom aaamwheremonth=1 andm.year=aaa.year)asm1, (selectamountfrom aaamwheremonth=2 andm.year=aaa.year)asm2, (selectamountfrom aaamwheremonth=3 andm.year=aaa.year)asm3, (selectamountfrom aaamwheremonth=4 andm.year=aaa.year)asm4 fromaaa groupbyyear 这个是ORACLE 中做的: select*from(selectname,yearb1,lead(year)over (partitionbynameorderbyyear)b2,lead(m,2)over(partitionbynameorderbyyear)b3,rank()over( partitionbynameorderbyyear)rkfromt)whererk=1; ************************************************************************************ 精妙的SQL语句! 精妙SQL语句 作者: 不详发文时间: 2003.05.2910: 55: 05 说明: 复制表(只复制结构,源表名: a新表名: b) SQL: select*intobfromawhere1<>1 说明: 拷贝表(拷贝数据,源表名: a目标表名: b) SQL: insertintob(a,b,c)selectd,e,ffromb; 说明: 显示文章、提交人和最后回复时间 SQL: selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtablewheretable.title=a.title)b 说明: 外连接查询(表名1: a表名2: b) SQL: selecta.a,a.b,a.c,b.c,b.d,b.ffromaLEFTOUTJOINbONa.a=b.c 说明: 日程安排提前五分钟提醒 SQL: select*from日程安排wheredatediff('minute',f开始时间,getdate())>5 说明: 两张关联表,删除主表中已经在副表中没有的信息 SQL: deletefrominfowherenotexists(select*frominfobzwhereinfo.infid=infobz.infid) 说明: -- SQL: SELECTA.NUM,A.NAME,B.UPD_DATE,B.PREV_UPD_DATE FROMTABLE1, (SELECTX.NUM,X.UPD_DATE,Y.UPD_DATEPREV_UPD_DATE FROM(SELECTNUM,UPD_DATE,INBOUND_QTY,STOCK_ONHAND FROMTABLE2 WHERETO_CHAR(UPD_DATE,'YYYY/MM')=TO_CHAR(SYSDATE,'YYYY/MM'))X, (SELECTNUM,UPD_DATE,STOCK_ONHAND FROMTABLE2 WHERETO_CHAR(UPD_DATE,'YYYY/MM')= TO_CHAR(TO_DATE(TO_CHAR(SYSDATE,'YYYY/MM')¦¦'/01','YYYY/MM/DD')-1,'YYYY/MM'))Y, WHEREX.NUM=Y.NUM(+) ANDX.INBOUND_QTY+NVL(Y.STOCK_ONHAND,0)<>X.STOCK_ONHAND)B WHEREA.NUM=B.NUM 说明: -- SQL: select*fromstudentinfowherenotexists(select*fromstudentwherestudentinfo.id=student.id)and系名称='"&strdepartmentname&"'and专业名称='"&strprofessionname&"'orderby性别,生源地,高考总成绩 说明: 从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源) SQL: SELECTa.userper,a.tel,a.standfee,TO_CHAR(a.telfeedate,'yyyy')AStelyear, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'01',a.factration))ASJAN, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'02',a.factration))ASFRI, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'03',a.factration))ASMAR, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'04',a.factration))ASAPR, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'05',a.factration))ASMAY, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'06',a.factration))ASJUE, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'07',a.factration))ASJUL, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'08',a.factration))ASAGU, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'09',a.factration))ASSEP, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'10',a.factration))ASOCT, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'11',a.factration))ASNOV, SUM(decode(TO_CHAR(a.telfeedate,'mm'),'12',a.factration))ASDEC FROM(SELECTa.userper,a.tel,a.standfee,b.telfeedate,b.factration FROMTELFEESTANDa,TELFEEb WHEREa.tel=b.telfax)a GROUPBYa.userper,a.tel,a.standfee,TO_CHAR(a.telfeedate,'yyyy') 说明: 四表联查问题: SQL: select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 试题