关于如何在查询结果中添加自动编号

2016-01-29 16:18 19 1 收藏

关于如何在查询结果中添加自动编号,关于如何在查询结果中添加自动编号

【 tulaoshi.com - SQLServer 】

  往往经常有这样的需求,我需要在查询的结果中添加一列类似于Identity的数字,虽然在Client编程中并不难实现,但是有时我想留用现有的Class,不希望在Client side做额外的coding,那么就只有在Sql里面想办法了
首先介绍一种用一条SQL语句完成的办法,原理是在结果中查询大于等于该纪录的纪录条数,就可以得到它的Rank了
Example:
USE pubs
SELECT COUNT(*) AS Rank, a1.au_lname, a1.au_fname
   FROM authors a1, authors a2
   WHERE a1.au_lname + a1.au_fname = a2.au_lname + a2.au_fname
   GROUP BY a1.au_lname, a1.au_fname
   ORDER BY Rank
不过呢,这种方法有它的局限性,第一是性能不好,第二是如果存在相同的纪录,那么Rank就会出现并列的情况,比如出现两个2,但是没有3了
有没有别的方法呢?当然有的,SQL提供了一个IDENTITY Function,可以得到标识列的值,不过可惜的很的是,这个函数只能用于SELECT INTO语句,所以我们只好引入一个临时表了
Example:
USE pubs
SELECT IDENTITY(INT, 1, 1) AS Rank,au_lname,au_fname
   INTO #tmp
   FROM authors
SELECT * FROM #tmp
DROP TABLE #tmp
这种方法的性能和适用性都比第一种方法要强,不过缺点是必须通过几条SQL语句才能完成。
所以如果可能的话,一般还是建议在客户端完成这一操作

Thanks for your read and any advise.

 

来源:https://www.tulaoshi.com/n/20160129/1498220.html

延伸阅读
在平常的办公中,经常碰到需要在Word中求和的情况,而用过Excel的朋友都知道,在Excel的常用工具栏中有一个〔自动求和〕按钮很方便。其实,在Word 2003的表格中,也可以使用〔自动求和〕按钮,当然,这需要想办法把〔自动求和〕按钮调出来才行,其方法是: 1. 在“工具”菜单中单击“自定义”命令。 2. 选择“命令...
标签: word
word2013自动编号如何取消?   问题描述 第一段中输入带有1的编号,按下回车键,第二段会自动出现编号2。 一、临时去除自动编号 方法一:当出现不想要的编号时,可以再次按下回车键,就可以临时去除这个编号。 方法二:出现自动编号时,连续按两次退格键,也能取消这个编号。 二、永久取消自动编号 ...
标签: 办公软件
    在编辑Word文档时,经常要添加一些项目符号和编号。但由于电脑是自动添加相应的项目符号和编号,效果并不令人满意,不好看。虽然可以通过点击[格式]→[项目符号和编号(N)]来取消它。但每次都要设置很不方便。有没有方法可以永久取消自动添加项目符号和编号呢?     1. 打开Word文档,单击菜单栏...
标签: flash教程
1、从网上下载一张素材,将素材导入flash软件中。 2、新建一个图层,图层1是我们的背景图层,接着我们就要在图层2开始制作文字。   3、选择工具面板中的文字工具。 ...
标签: 电脑入门
在用powerpoint为公司做演示文稿时,最好每一页都加上公司的Logo,这样可以间接地为公司做免费广告。如何每一张都插入也可以但是很麻烦,其实我们可以在母版中一次性搞好,并且在普通试图中编辑文字是也不会造成不小心删除等情况: 具体步骤如下: 步骤一、单击视图菜单下母版中的幻灯片母版; 步骤二、在 幻灯片母版视图中,单击插入菜单...

经验教程

280

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部