今天做个后台服务,有个需求是批量生成一批表的数据,如果用BulkInsert会提升很大一截提交效率,但是如果用循环构造提交的Datable,则算法开销太高,所以用这种查询批量查出符合格式的DataTable结果集。

*思想就是将查询列做CASE判断值,然后放在 SELECT段中作为别名列显示字段值,然后再根据ID分组。

下面是内层的原始查询效果:

下面是行转列后查询效果如图:

下面是上面两张图的最终查询语句:

 SELECT f_gameID,SUM(score) AS totNum,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject01,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject02,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject03,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject04,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject05,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject06,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject07,SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject08,
SUM(CASE f_sub WHEN '' THEN score ELSE END) AS f_subject09
FROM
(
SELECT u.f_gameID,u.f_sub,COUNT(u.f_sub) AS score
FROM t_mfg_GameUserAnswers AS u
LEFT JOIN t_mfg_Class AS c ON u.f_gameId = c.f_gameId
WHERE u.f_startTime > '2015-07-20'
AND u.f_endTime < '2015-07-24'
-- AND c.f_schoolId =
GROUP BY u.f_gameID ,u.f_sub
) AS a
GROUP BY f_gameID;

最新文章

  1. qt 定时器
  2. 1Z0-053 争议题目解析694
  3. python中的argparse模块学习
  4. Android Studio-导入External Libraries
  5. 轻松学会文本处理工具之二 linux sed命令
  6. CodeForces 598E Chocolate Bar
  7. NetCore WebSocket 即时通讯示例
  8. dedecms判断当前页面是否为首页 织梦设置首页高亮
  9. 【NOIP2012】开车旅行(倍增)
  10. 获取多&lt;a/&gt;标签id值的点击事件
  11. python 中的 yield 究竟为何物?生成器和迭代器的区别?
  12. vue中是使用富文本编辑器vue-quill-edit
  13. Android Service、IntentService,Service和组件间通信
  14. java.lang.ClassNotFoundException: com.sun.xml.ws.spi.ProviderImpl解决办法
  15. Lyft高管的技术团队管理实战
  16. 【读书笔记】iOS-发布你的促销消息-推动通知
  17. Spring---Bean使用外部属性文件
  18. hdu4009最小树形图
  19. Extjs tree1
  20. Python实现图片转字符画

热门文章

  1. 数据结构实习 problem L 由二叉树的中序层序重建二叉树
  2. 配置spring boot 内置tomcat的accessLog日志
  3. 【转】asp.net 项目在 IE 11 下出现 “__doPostBack”未定义 的解决办法
  4. centos mysql忘记密码
  5. 读懂 ECMAScript 规格
  6. zabbix自动化运维学习笔记(服务器配置)
  7. Ubuntu 14.04配置虚拟主机
  8. ubuntu 14.04 解决apt-get update报错
  9. Qt5.3中qml ApplicationWindow设置窗口无边框问题
  10. angularJS---service