SQL经典面试题及答案 以下是根据给定的文件信息生成的相关知识点: SQL语句的group by应用 问题1:如何写SQL语句来生成如下结果? 胜 负 2005-05-09 2 2 2005-05-10 1 2 答案:可以使用三种方式来实现: 1)使用sum()和case when语句: ``` select rq, sum(case when shengfu='胜' then 1 else 0 end) '胜', sum(case when shengfu='负' then 1 else 0 end) '负' from #tmp group by rq ``` 2)使用inner join和count()语句: ``` select N.rq, N.勝, M.負 from ( select rq, 勝=count(*) from #tmp where shengfu='胜' group by rq ) N inner join ( select rq, 負=count(*) from #tmp where shengfu='负' group by rq ) M on N.rq=M.rq ``` 3)使用subquery和count()语句: ``` select a.col001, a.a1 胜, b.b1 负 from ( select col001, count(col001) a1 from temp1 where col002='胜' group by col001 ) a, ( select col001, count(col001) b1 from temp1 where col002='负' group by col001 ) b where a.col001=b.col001 ``` SQL语句的条件判断 问题2:如何使用SQL语句实现当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列? 答案: ``` select (case when a>b then a else b end), (case when b>c then b else c end) from table_name ``` SQL语句的日期判断 问题3:如何使用SQL语句取出tb_send表中日期(SendTime字段)为当天的所有记录? 答案: ``` select * from tb where datediff(dd, SendTime, getdate())=0 ``` SQL语句的条件格式化 问题4:如何使用SQL语句查询出三条记录并按以下条件显示出来? 答案: ``` select (case when 语文>=80 then '优秀' when 语文>=60 then '及格' else '不及格' end) as 语文, (case when 数学>=80 then '优秀' when 数学>=60 then '及格' else '不及格' end) as 数学, (case when 英语>=80 then '优秀' when 英语>=60 then '及格' else '不及格' end) as 英语 ``` 这些问题涵盖了SQL语句的多种应用场景,包括group by语句、条件判断、日期判断和条件格式化等。
- 粉丝: 64
- 资源: 1978
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助