资源描述:
《sql数据库经典面试题(笔试题)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQL数据库经典面试题(笔试题)1.一道SQL语句面试题,关于groupby表内容:2005-05-09胜2005-05-09胜2005-05-09负2005-05-09负2005-05-10胜2005-05-10负2005-05-10负如果要生成下列结果,该如何写sql语句? 胜负2005-05-09222005-05-1012------------------------------------------createtable#tmp(rqvarchar(10),shengfunchar(1)
2、)insertinto#tmpvalues('2005-05-09','胜')insertinto#tmpvalues('2005-05-09','胜')insertinto#tmpvalues('2005-05-09','负')insertinto#tmpvalues('2005-05-09','负')insertinto#tmpvalues('2005-05-10','胜')insertinto#tmpvalues('2005-05-10','负')insertinto#tmpvalues('2005-05-10',
3、'负')1)selectrq,sum(casewhenshengfu='胜'then1else0end)'胜',sum(casewhenshengfu='负'then1else0end)'负'from#tmpgroupbyrq2)selectN.rq,N.勝,M.負from(selectrq,勝=count(*)from#tmpwhereshengfu='胜'groupbyrq)Ninnerjoin(selectrq,負=count(*)from#tmpwhereshengfu='负'groupbyrq)MonN.rq=
4、M.rq3)selecta.col001,a.a1胜,b.b1负from(selectcol001,count(col001)a1fromtemp1wherecol002='胜'groupbycol001)a,(selectcol001,count(col001)b1fromtemp1wherecol002='负'groupbycol001)bwherea.col001=b.col0012.请教一个面试中遇到的SQL语句的查询问题表中有ABC三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选
5、择B列否则选择C列。------------------------------------------select(casewhena>bthenaelsebend),(casewhenb>cthenbeslecend)fromtable_name3.面试题:一个日期判断的sql语句?请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)------------------------------------------select*fromt
6、bwheredatediff(dd,SendTime,getdate())=04.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路): 大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。 显示格式: 语文 数学 英语 及格 优秀
7、不及格 ------------------------------------------select(casewhen语文>=80then'优秀' when语文>=60then'及格'else'不及格')as语文,(casewhen数学>=80then'优秀' when数学>=60then'及格'else'不及格')as数学,(casewhen英语>=80then'优秀' when英语>=60then'及格'else'不及格')as英语,fromtable5.在sqlserv
8、er2000中请用sql创建一张用户临时表和系统临时表,里面包含两个字段ID和IDValues,类型都是int型,并解释下两者的区别?------------------------------------------用户临时表:createtable#xx(IDint,IDValuesint)系统临时表:creat