2010年12月4日
摘要: 前言:我一直十分喜欢使用SQL Server2005/2008的窗口函数,排名函数ROW_NUMBER()尤甚。今天晚上我在查看SQL Server开发的相关文档,整理收藏夹发现了两篇收藏已久的好文,后知后觉,读后又有点收获,顺便再总结一下。一、从一个熟悉的示例说起我们熟知的数据库分页查询,以这一篇介绍过的为例吧。分页查询Person表中的人,可以这么写SQL语句:其中,ROW_NUMBER()是排名函数,而紧随其后的 OVER()函数就是窗口函数。你还在用二次top方式的分页查询吗?可以考虑尝试使用排名函数配合CTE实现分页。二、窗口函数本文介绍窗口函数,以下面的学生成绩表为例:其中,Id是 阅读全文
posted @ 2010-12-04 23:50 JeffWong 阅读(15140) 评论(8) 推荐(4) 编辑
摘要: 写SQL容易,但难精通。注:本文示例Person表结构请参考拙文的数据表介绍。一、SQL语句直接处理非数字型列的“累加”问题查询要求:取出Person表中所有人的FirstName,并以逗号隔开。可直接通过SELECT @local_variable = expression的形式实现:我们还有一种比较笨拙的方式进行查询,那就是通过游标:大部分SQL查询我们都会力争不用游标... 阅读全文
posted @ 2010-12-04 17:38 JeffWong 阅读(1814) 评论(1) 推荐(2) 编辑