• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试开发技术SQL Server数据库的数据汇总完全解析

发布: 2009-10-26 09:46 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 95次 | 进入软件测试论坛讨论

领测软件测试网

 

--如果你用的是WITH CUBE,结果集的后面还会多出两条(如果你也只是输入示例中的几行数据的话): 


NULL          A          14 
NULL          B          16
 

咦!奇怪,结果中怎么有那么多“NULL”值?哈,别急,这几行正是我们所要的汇总数据行,不难看出: 

01 NULL 13正是对编码为01的所有仓库中的数量的汇总;02 NULL 17是对编码为02的所有仓库的数量的汇总; 

NULL NULL 30是对所有资料行数量的汇总。 

如何?答案出来了吧?是不是很简单呢?当然,上面还有点美中不足,那就是有好多“NULL”的存在。如何去掉这些无意义的NULL呢?下面我们再进行优化。 

1、用Grouping替换NULL值 


SELECT CASE WHEN (GROUPING(编码) = 1) THEN ’ALL’ 
ELSE ISNULL(编码, ’UNKNOWN’) 
END AS 编码, 
CASE WHEN (GROUPING(仓库) = 1) THEN ’ALL’ 
     ELSE ISNULL(仓库, ’UNKNOWN’) 
END AS 仓库, 
SUM(数量) AS 数量 
FROM A 
GROUP BY 编码, 仓库 WITH ROLLUP
 

--适当的运用Case函数 

结果我这里就不写了,就是把上面的“NULL”值全部换成“ALL”字符串 

2、利用程序做进一步的优化 

//通常为了显示上的需要,我们必须对以上SQL语句生成的结果做一些优化,下面给出自然语言描述: 


文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网