背景:

为何说是一雪前耻呢,想当年,我还小,我出去面试远洋,远远地看着浩哥在那里坐着,然后下班去吃饭,我和东辉却在那里静静地等待着第二轮的技术面试(结果是没有面上,一个是学历问题),终于一个小个子姐姐把我领走了,问了我好多问题,像什么WCF啊,MVC啊什么的,都没有问,直接问我,后台怎么样,会写sql吗,我说当然会,在以前主要干后台,他在问的同时就编了好几个问题,其中有一个也是最后一个我没有打上来的问题如下图:

告诉我如何写能输出一下效果:

静静的沉思,歇了一会,想了想,最终说:“对不起,我有点紧张,暂时解决不了”,人家说了句,这个很简单啊,应该怎么样怎么样,她也写了一会,说,肯定能实现,我说:“是”。

我出去工作了一段时间,期间利用sql解决挺多为,也帮助同事去拼sql,终于自己的水平有了一点长进,就在刚才,突然之间我又想起了这段往事,决定去自己解决一下这个问题,功夫不负有心人,完成了,分享一下:

  1. select StudentName,
  2. (select Result from TestTable as RT where RT.StudentName=ST.StudentName and RT.LessonName='语文') as Chinese,
  3. (select Result from TestTable as BT where BT.StudentName=ST.StudentName and BT.LessonName='数学') as Suanshu,
  4. (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 Resultsum
  5. from TestTable as ST GROUP BY ST.StudentName ORDER BY resultsum DESC</span>

如果有需要讲解或者更好建议的同志,请qq联系

sql篇,动态合并数据的更多相关文章

  1. SQL存储过程动态查询数据区间

    以前经常看到人查询数据库采用left join及case方式,一条一条的枚举查询整个数据的数据区间方法可行,但是数据一但很大,枚举就死悄悄,在网上查看,几乎全是照抄case ,left join枚举无 ...

  2. Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform

    Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using ...

  3. 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图

    如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?

  4. 数据的动态合并和导出至EXCEL

    最近一段时间都在处理数据的动态合并和导出EXCEL的问题,写个demo记录下,希望和我碰到同样问题的博友可以顺利解决:后面会提供demo下载链接. (VS2012,ASP.NET) 一.主要解决以下问 ...

  5. 动态合并Repeater控件数据列

    前天Insus.NET实现<动态合并GridView数据行DataRow的列>.今天再玩玩Repeater控件,功能也是动态合并某列栏位.Repeater控件跟GridView控件一样集成 ...

  6. 动态合并GridView数据行DataRow的列

    前段时间,Insus.NET一直在演示GridView控件Header头行或列:<动态变更GridView控件列名>和<动态合并或定制GridView控件Header头某些列> ...

  7. 数据库合并数据sql

    1.sql2000中只能用自定义的函数解决 )) , 'aa') , 'bb') , 'aaa') , 'bbb') , 'ccc') go )) ) as begin ) select @str = ...

  8. Python 学习 第17篇:从SQL Server数据库读写数据

    在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...

  9. 一篇了解大数据架构及Hadoop生态圈

    一篇了解大数据架构及Hadoop生态圈 阅读建议,有一定基础的阅读顺序为1,2,3,4节,没有基础的阅读顺序为2,3,4,1节. 第一节 集群规划 大数据集群规划(以CDH集群为例),参考链接: ht ...

随机推荐

  1. Apache2.4.6 添加虚拟主机

    apache2.4 与 apache2.2 的虚拟主机配置写法有所不同 apache2.2的写法: <VirtualHost *:80> ServerName domain.com Doc ...

  2. ACM/ICPC 之 拓扑排序-反向(POJ3687)

    难点依旧是题意....需要反向构图+去重+看题 POJ3687-Labeling Balls 题意:1-N编号的球,输出满足给定约束的按原编号排列的重量序列,如果有多组答案,则输出编号最小的Ball重 ...

  3. 初识 MySQL 5.6 新特性、功能

    背景: 之前介绍过 MySQL 5.5 新功能.参数,现在要用MySQL5.6,所以就学习和了解下MySQL5.6新的特性和功能,尽量避免踩坑.在后续的学习过程中文章也会不定时更新. 一:参数默认值的 ...

  4. ABAP 弹窗案例

    DATA:  WL_ANSWER  TYPE C. CALL FUNCTION 'POPUP_TO_CONFIRM'    EXPORTING     TEXT_QUESTION            ...

  5. SQL触发器中若取到null值可能引发的问题

    declare @code varchar(20), @cs varchar(20),@zc varchar(20)set @cs='('+@cs+'*'+@zc+')'print '字符'+@csi ...

  6. [Android]如何获取当前用户设置的时区

    方法:TimeZone.getDefault().getDisplayName(true, TimeZone.SHORT);获取的值如GMT+08:00,GMT-04:00,EDT  另附:国家码查询 ...

  7. 关于CentOS普通用户无法登录SSH问题

    在CentOS中,假若一切都顺利的话,你建新一个用户,它就自动添加到SSHD登录服务中的处的了,不必手动或再设置什么,但有些情况下,我们的系统只允许root用户登录,那么,我们就要进行一些必要的设置, ...

  8. Greedy:Graveyard Design(POJ 2100)

    墓地 题目大意,给定一个整数,要你找出他的平方和组合 太简单了....不过一开始我储存平方和想降低时间,后来发现会超内存,直接用时间换空间了,游标卡尺法 #include <iostream&g ...

  9. JAVA中的Calendar得到当前时间的年份、月份、日期

    import java.util.Calendar; public class CalendarTest {        public static void main(String[] args) ...

  10. OKhttp基本使用介绍

    MainActivity.class package com.example.administrator.okhttp3; import android.support.v7.app.AppCompa ...