资源描述:
《sql语句常见面试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、★sql语句常见面试题Sql常见面试题Sql常见面试题(总结)1.用一条SQL语句查询出每门课都大于80分的学生姓名namekechengfenshu张三语文81张三数学75李四语文76李四数学90王五语文81王五数学100王五英语90A:selectdistinctnamefromtableenotin(selectdistinctnamefromtabletablenamein(自动编号)fromtablenamegroupby学号,姓名,课程编号,课程名称,分数)一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应
2、四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.你先按你自己的想法做一下,看结果有我的这个简单吗?答:selecta.name,b.namefromteama,teambe<b.name请用SQL语句实现:从TestDB数据表中查询出所有月份的发生额都比101科目相应月份的发生额高的科目。请注意:TestDB中有很多科目,都有1-12月份的发生额。AccID:科目代码,Occmonth:发生额月份,DebitOccur:发生额。数据库名:JcyAudit,数据集:Select*fromTestDB答:selecta.*fromTestDB
3、a,(selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBonth)bonth=b.Occmonthanda.DebitOccur>b.Debit101ccur************************************************************************************面试题:怎么把这样一个表儿yearmonthamount199111.1199121.2199131.3199141.4199212.1199222.2199232.3199242.4查成
4、这样一个结果yearm1m2m3m419911.11.21.31.419922.12.22.32.4答案一、selectyear,(selectamountfromaaamonth=1andm.year=aaa.year)asm1,(selectamountfromaaamonth=2andm.year=aaa.year)asm2,(selectamountfromaaamonth=3andm.year=aaa.year)asm3,(selectamountfromaaamonth=4andm.year=aaa.year)asm4fromaaagroupbyyear这
5、个是ORACLE中做的:select*from(selectname,yearb1,lead(year)over(partitionbynameorderbyyear)b2,lead(m,2)over(partitionbynameorderbyyear)b3,rank()over(partitionbynameorderbyyear)rkfromt)ab;说明:显示文章、提交人和最后回复时间SQL:selecta.title,a.username,b.adddatefromtablea,(selectmax(adddate)adddatefromtableaLEFT
6、OUTJOINbONa.a=b.c说明:日程安排提前五分钟提醒SQL:select*from日程安排inute',f开始时间,getdate())>5说明:两张关联表,删除主表中已经在副表中没有的信息SQL:deletefrominfoinfobzstudentinfostudentp;strdepartmentname'and专业名称='strprofessionname'orderby性别,生源地,高考总成绩说明:从数据库中去一年的各单位费统计(费定额贺电化肥清单两个表)SQL:SELECTa.userper,a.tel,a.
7、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.fact