欢迎来到天天文库
浏览记录
ID:47039288
大小:72.00 KB
页数:17页
时间:2019-07-04
《sql常见面试题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Sql常见面试题(总结)1.用一条SQL语句查询出每门课都大于80分的学生姓名 name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90A:selectdistinctnamefromtable where namenotin(selectdistinctnamefromtablewherefenshu<=80)2.学生表如下:自动编号 学号 姓名课
2、程编号课程名称分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 893 2005001 张三 0001 数学 69删除除了自动编号不同,其他都相同的学生冗余信息A:deletefromtablenamewhere自动编号notin(selectmin(自动编号)fromtablenamegroupby学号,姓名,课程编号,课程名称,分数)一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在
3、四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.你先按你自己的想法做一下,看结果有我的这个简单吗?答:selecta.name,b.namefromteama,teambwherea.name4、tDBa,(selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBwhereAccID='101'groupbyOccmonth)bwherea.Occmonth=b.Occmonthanda.DebitOccur>b.Debit101ccur************************************************************************************面试题:怎么把这样一个表儿year monthamount1991 1 1.11991 2 5、 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样一个结果yearm1 m2 m3 m419911.11.21.31.419922.12.22.32.4答案一、selectyear,(selectamountfrom aaamwheremonth=1 andm.year=aaa.year)asm1,(selectamountfrom aaamwheremonth=2 andm.year=aaa.year)asm2,6、(selectamountfrom aaamwheremonth=3 andm.year=aaa.year)asm3,(selectamountfrom aaamwheremonth=4 andm.year=aaa.year)asm4fromaaa groupbyyear这个是ORACLE 中做的:select*from(selectname,yearb1,lead(year)over(partitionbynameorderbyyear)b2,lead(m,2)over(partitionbynameorderbyyear)b3,rank()ove7、r(partitionbynameorderbyyear)rkfromt)whererk=1;************************************************************************************精妙的SQL语句!精妙SQL语句 作者:不详发文时间:2003.05.2910:55:05说明:复制表(只复制结构,源表名:a新表名:b)SQL:select*intobfromawhere1<>1说明:拷贝表(拷贝数据,源表名:a目标表名:b)SQL:insertintob(a,b,c)selectd8、,e,ffromb;说明
4、tDBa,(selectOccmonth,max(DebitOccur)Debit101ccurfromTestDBwhereAccID='101'groupbyOccmonth)bwherea.Occmonth=b.Occmonthanda.DebitOccur>b.Debit101ccur************************************************************************************面试题:怎么把这样一个表儿year monthamount1991 1 1.11991 2
5、 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样一个结果yearm1 m2 m3 m419911.11.21.31.419922.12.22.32.4答案一、selectyear,(selectamountfrom aaamwheremonth=1 andm.year=aaa.year)asm1,(selectamountfrom aaamwheremonth=2 andm.year=aaa.year)asm2,
6、(selectamountfrom aaamwheremonth=3 andm.year=aaa.year)asm3,(selectamountfrom aaamwheremonth=4 andm.year=aaa.year)asm4fromaaa groupbyyear这个是ORACLE 中做的:select*from(selectname,yearb1,lead(year)over(partitionbynameorderbyyear)b2,lead(m,2)over(partitionbynameorderbyyear)b3,rank()ove
7、r(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
8、,e,ffromb;说明
此文档下载收益归作者所有