数据库

 首页 > 数据库 > SqlServer > 出色的表数据排序分组

出色的表数据排序分组

分享到:
【字体:
导读:
         摘要: 今天,当你需要对一个没有排序ID的表进行排序,并且想给每一行数据都给一个序号。这相当于很多人问到的,如何在一个视图中为每一行增加一个主动增加的ID号。你可以这样写: 以...

出色的表数据排序分组

今天,当你需要对一个没有排序ID的表进行排序,并且想给每一行数据都给一个序号。这相当于很多人问到的,如何在一个视图中为每一行增加一个主动增加的“ID”号。你可以这样写:

以下为引用的内容:

Select a.Badge,Count(a.Badge) as xorder

       From cPayroll a , cPayroll b

                  Where a.Badge > = b.Badge  Group by a.Badge

看了以后的语句,你可能会感到非常简略。在以上的基础上,还可以满足以下这样一个很实用的功效。一个表中的前20行分成第1组,从21行-->40行分成第2组,41-->60 分成第3组。也即是在一个表的基础上拓展用视图天生以下的数据。(xOrder 与 Group  都是视图天生的。)

以下为引用的内容:

Badge    xOrder    Group

A1              1               G1

A2              2               G1

.                  

B1             21             G2

B2             22             G2

...

C1             41              G3

...

在上面的视图得出来以后, 我们就可以用 Select * from  ViewName Where  Group = 'G1'  ('G2'....) 的语句进行分组或分页显示查询了。以下我们来天生这样的成果。

在排序功效实现了以后,再实现分组,就是略微变更一下而已:

以下为引用的内容:

Select Badge , Count(a.Badge) as xorder , Cast(((Count(a.Badge)-1)/20 ) 1 as varchar(10)) as Group

        From cPayroll a , cPayroll b

                  Where a.Badge > = b.Badge  Group by a.Badge



出色的表数据排序分组
分享到:
如何应用SQL Server数据库中查询累计值
如何应用SQL Server数据库中查询累计值 有这样一个请求,它要创立一个SQL Server查询,其中包含基于事件时刻的累计值。典范的例子就是一个银行账户,由于你每一次都是在不同的时间往存钱和取钱。对任意一个账户来说,在某个时间点都要算出它的借(存款)和贷(取款)之和。每一笔交易之后,你都想知道当前的余额。列表A创立...
透视MySQL数据库之更新语句
透视MySQL数据库之更新语句 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之 意,就是对数据进行修改。在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。在MySQL中又多了一个REPLACE语句,因此,本文以MySQL为背景来讨论如何...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……