赵丽红的空间

我们一直在努力....

学会用SQL Server2005 的排序和分组新语法了

标签: 排序 分组 SQL Server2005

今天做一个导入采购计划单的模块,为了达到在导入时将数据每50条导入为一张单,每张单的明细从开始排序的目的,抓耳挠腮了好久,用标识种子转来转去,不仅云里雾里没有见到半点阳光,反而把自己绕进去爬不出来了。

找晶晶姐问来了一个排序的写法,哈哈,一句话就搞定row_number() OVER(ORDER BY _a.id_identity),喏,就这么简单,可是超级准确的得到了我想要的。

不过我高兴的还有点早了,我还要分组呢,幸好大力哥还没有走。又讨来一件法宝:select ntile(2) over(order by name) s,row_number() over(order by name) r,* from (select top 100 * from sys.tables order by name) f

其实关于这几个排序和分组的语法,早在几个月前大力哥给我们讲SQL Server2005 新语法的时候都已经讲过,但是后来没有用也没有联系,就给忘了。不过现在俺会用了,并且下决心要多多练习,多多请教

大力哥那里似乎是个万宝囊啊,嘿嘿,月光宝盒一样,什么宝贝都有。学习学习再学习:)

附大力哥之前讲过的一个例子:

select row_number() over(order by ordinal desc) 行号
, rank() over(order by ordinal) 排名
,dense_rank() over(order by ordinal) 紧密排名
,ntile(5) over(order by ordinal) 平均分配
from t_e_ordinal

附件:


    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    无人投票

相关博客:


评论


发表评论

验证码:
关注此文的人们还关注