遗留问题——sql面试篇(动态合并单表数据)
来源:互联网 发布:淘宝中评看不到 编辑:程序博客网 时间:2024/05/15 04:51
背景:
为何说是一雪前耻呢,想当年,我还小,我出去面试远洋,远远地看着浩哥在那里坐着,然后下班去吃饭,我和东辉却在那里静静地等待着第二轮的技术面试(结果是没有面上,一个是学历问题),终于一个小个子姐姐把我领走了,问了我好多问题,像什么WCF啊,MVC啊什么的,都没有问,直接问我,后台怎么样,会写sql吗,我说当然会,在以前主要干后台,他在问的同时就编了好几个问题,其中有一个也是最后一个我没有打上来的问题如下图:
告诉我如何写能输出一下效果:
静静的沉思,歇了一会,想了想,最终说:“对不起,我有点紧张,暂时解决不了”,人家说了句,这个很简单啊,应该怎么样怎么样,她也写了一会,说,肯定能实现,我说:“是”。
我出去工作了一段时间,期间利用sql解决挺多为,也帮助同事去拼sql,终于自己的水平有了一点长进,就在刚才,突然之间我又想起了这段往事,决定去自己解决一下这个问题,功夫不负有心人,完成了,分享一下:
select StudentName, (select Result from TestTable as RT where RT.StudentName=ST.StudentName and RT.LessonName='语文') as Chinese,(select Result from TestTable as BT where BT.StudentName=ST.StudentName and BT.LessonName='数学') as Suanshu, (CASE WHEN (select Result from TestTable as RT where RT.StudentName=ST.StudentName and RT.LessonName='语文')>0 THEN (select Result from TestTable as BT where BT.StudentName=ST.StudentName and BT.LessonName='语文') ELSE 0 END + CASE WHEN (select Result from TestTable as RT where RT.StudentName=ST.StudentName and RT.LessonName='数学')>0 THEN (select Result from TestTable as BT where BT.StudentName=ST.StudentName and BT.LessonName='数学') ELSE 0 END) as Resultsumfrom TestTable as ST GROUP BY ST.StudentName ORDER BY resultsum DESC</span>
如果有需要讲解或者更好建议的同志,请qq联系
2 0
- 遗留问题——sql面试篇(动态合并单表数据)
- 遗留问题——数组合并
- SQL-两个表合并数据(字符串合并)
- 【SQL Server】数据操作语言——单表查询
- SQL中的数据合并
- SQL 合并数据
- 程序员面试系列——合并排序(递归实现)
- SQLite 3.7.13的加密解密(七)—— 遗留问题
- SQLite 3.7.13的加密解密(七)—— 遗留问题
- C++11读书笔记—1(长期历史遗留问题,宏定义与类型)
- 遗留问题
- 遗留问题
- 遗留问题
- 遗留问题
- 遗留问题
- 遗留问题
- 遗留问题
- 动态Sql获取动态表数据
- java Spring后台如何解决跨域请求
- db2数据库
- [Git高级教程(二)] 远程仓库版本回退方法
- jqGrid+Struts2(-)数据展示
- BeanUtils
- 遗留问题——sql面试篇(动态合并单表数据)
- 【新手必备】:高质量 代码命名规则
- Gym 100935F A Poet Computer (字典树)
- 【javase复习】## 反射 ##
- java环境变量详解---找不到或无法加载主类
- 欢迎使用CSDN-markdown编辑器
- ionic之使用crosswalk编译
- scrollUp.js Javascript/jQuery 页面返回顶部
- BLE 蓝牙 与APP 得交互 内设 外设