让SELECT 查询结果额外增加自动递增序号

如果数据表本身并不内含自动地增编号的字段时,要怎么做才能够让SELECT查询结果,额外增加自动递增序号呢?我们提供下列五种方法供您参考:

 1  USE
 2  GO
 3 
 4  /*  方法一 */
 5 
 6  SELECT序号 =  ( SELECT   COUNT (客户编号)  FROM  客户  AS  LiMing
 7                        WHERE  LiMing.客户编号 <=  Chang.客户编号),
 8          客户编号,公司名称
 9  FROM客户  AS  Chang  ORDER   BY   1 ;
10  GO
11 
12  /*  方法二: 使用SQL Server 2005 独有的RANK() OVER () 语法 */
13  SELECT  RANK()  OVER  ( ORDER   BY  客户编号  DESC AS  序号,
14            客户编号,公司名称
15  FROM客户;
16  GO
17 
18  /*  方法三 */
19  SELECT序号 =   COUNT ( * ), LiMing.客户编号, LiMing.公司名称
20       FROM  客户  AS  LiMing, 客户AS Chang
21       WHERE  LiMing.客户编号 >=  Chang.客户编号
22       GROUP   BY  LiMing.客户编号, LiMing.公司名称
23       ORDER   BY  序号;
24  GO
25 
26  /*  方法四
27  建立一个「自动编号」的字段,然后将数据新增至一个区域性暂存数据表,
28  然后由该区域性暂存数据表中,将数据选取出来,最后删除该区域性暂存数据表
29  */
30  SELECT序号 =   IDENTITY ( INT , 1 , 1 ),管道,程序语言,讲师,资历
31  INTO  #LiMing
32  FROM问券调查一;
33  GO
34  SELECT   *   FROM  #LiMing;
35  GO
36  DROP   TABLE  #LiMing;
37  GO
38 
39  /*
40  方法五
41  使用 SQL Server 2005 独有的ROW_NUMBER() OVER () 语法
42  搭配 CTE (一般数据表表达式,就是 WITH 那段语法)选取序号2 ~ 4 的数据
43  */
44  WITH排序后的图书  AS
45  ( SELECT  ROW_NUMBER()  OVER  ( ORDER   BY  客户编号  DESC AS  序号,
46     客户编号,公司名称
47       FROM  客户)
48  SELECT   *   FROM  排序后的图书
49  WHERE序号  BETWEEN   2   AND   4 ;
50  GO
51 
52 
53 

 


 

转载于:https://www.cnblogs.com/west2007/archive/2011/01/25/1944345.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值