资源描述:
《《sql语句面试题》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、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))insertinto#tmpvalues('2005-05-09','胜')insertinto
2、#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','负')1)selectrq,sum(casewhenshengfu='胜'then1else0end)'胜',sum(casewhenshengfu='负'the
3、n1else0end)'负'from#tmpgroupbyrq2)selectN.rq,N.勝,M.負from(selectrq,勝=count(*)from#tmpwhereshengfu='胜'groupbyrq)Ninnerjoin(selectrq,負=count(*)from#tmpwhereshengfu='负'groupbyrq)MonN.rq=M.rq3)selecta.rq,a.a1胜,b.b1负from(selectrq,count(rq)a1from#tmpwhereshengfu='胜'groupbyrq)a,(selectrq,count(rq)b1from#
4、tmpwhereshengfu='负'groupbyrq)b wherea.rq=b.rq2.请教一个面试中遇到的SQL语句的查询问题表中有ABC三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。------------------------------------------createtable#tmp(Aint,Bint,Cint)insertinto#tmpvalues('10','20','30')--insertinto#tmpvalues('10','30','20')--insertinto#tmpvalues('40
5、','10','20')select*from#tmpselect(casewhena>bthenaelsebend),(casewhenb>cthenbelsecend)from#tmp3.面试题:一个日期判断的sql语句?请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)------------------------------------------select*from#tmpwheredatediff(dd,rq,getdate())=0select*from#tmpwhererq=rtrim(
6、convert(varchar,getdate(),23))4.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路): 大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。 显示格式: 语文 数学 英语 及格 优秀 不及格 ----------------------------------------
7、--createtable#tmp(语文int,数学int,英语int)insertinto#tmpvalues('70','80','58')--insertinto#tmpvalues('100','50','60')select*from#tmpselect(casewhen语文>=80then'优秀' when语文>=60then'及格' else'不及格'end)语文, (case