SQL Server查询结果中添加自动编号

往往经常有这样的需求,我需要在查询的结果中添加一列类似于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语句才能完成。
所以如果可能的话,一般还是建议在客户端完成这一操作.

转载于:https://www.cnblogs.com/mywebname/archive/2007/11/13/958565.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 培训6,Linux Syscalls有 6个参数(Linux Syscalls with 6 parameters)

Linux Syscalls有> 6个参数(Linux Syscalls with > 6 parameters)是否可以编写一个具有6个以上输入参数的(linux内核)sycall函数? 查看标题我发现定义的系统调用宏最多有6个参数。 我很想尝试定义SYSCALL7和SYSCALL8以允许7和8参数,但我不太确定它…

c语言搜索子字符串

c字符串功能练习&#xff1a; 获取一行字符串&#xff0c;然后&#xff0c;在这行字符串中搜索是否包含一个小字符串 #include <cstdio> …

asp.net 导出word excel 当前上下文中不存在名称“Encoding”报错问题

web页面<% Page Language"C#" EnableEventValidation"false" AutoEventWireup"true" CodeBehind"CheapMaterialManageSet.aspx.cs" Inherits"AssetsManager.DeskWeb.BaseDOC.CheapMaterialManageSet" %>using System.…

linux中fstab含义,fstab每一列的含义

&#xff1c;fstab文件总览&#xff1e;当然&#xff0c;由于每个人的分区和设备属性或者所在的系统不同&#xff0c;所以fstab文件不尽相同&#xff0c;但是基本的结构总是相似的&#xff0c;下面是/etc/fstab中内容的一些示例&#xff1a;/etc/fstab:/dev/hda2 / ext2 defaul…

命令编写注册表文件修改注册表项

命令编写注册表文件修改注册表项 1、何谓REG文件REG文件实际上是一种注册表脚本文件&#xff0c;双击REG文件即可将其中的数据导入到注册表中。利用REG文件我们可以直接对注册表进行任何修改操作&#xff0c;它对注册表的操作可以不受注册表编辑器被禁用的限制&#xff0c;因此…

linux 刻录cd,Linux 刻录CD/DVD命令 growisofs/mkisofs/cdrecord

1 . 制作ISO&#xff1a; $ mkisofs -V LabelName -J -jcharsetutf8 -r -o /home/TargetImage.iso /home/my-data-dir参数V是volumn ID,卷标&#xff1b;参数J表示产生Joliet ( name of an extension to the ISO 9660 file system) , 制作与windows兼容的盘。2. 查看设备&#…

UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划

原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化&#xff0c;设离散化后的值域为 $[0,m]$ 。 首先把问题转化一下&#xff0c;变成&#xff1a;对于每一个位置 $i$ &#xff0c;求出它最终不超过 $j$ 的方案数。 考虑如何求这个东西。 对于一个固定的 $j$ &…

又论社区风气, 与程序员是干嘛地的.

为了避免误解, 重新声明一下, 本文纯粹针对"博客园风气如何如何, 博客园的话题如何如何"这些说法, 不含有任何不用基础学习或者必须学习某一方面/最好广泛学习或者必须深钻一门等倾向, 如果有的话说的有偏向性, 请当作一时表达不清. "我可以不同意你的观点, 但我…

在手机上如何用c语言编译器编程,如何用手机进行编程?

这里介绍3种可以在手机上编程的app&#xff0c;分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python)&#xff0c;都不需要root&#xff0c;可以直接编写程序并运行&#xff0c;下面我简单介绍一下这3个app的安装和简单使用&#xff0c;主要内容如下&#xff1…

SDOI2014 旅行

传送门 省选前水一发 这题一开始看标签是主席树……后来……这题和主席树有啥关系…… 可以想到对于每种宗教用树剖线段树维护即可。然后因为空间不够要动态开点。然后改宗教&#xff0c;改评级的&#xff0c;把原来的点删了再插一个新点就可以了。查询最大值&#xff0c;和就直…

API函数的调用(包含一个大小写的问题)

遇到问题&#xff1a; 今天做的一个程序要调用AnimateWindow()函数来实现窗口的动画效果&#xff0c;参考书上在类的成员函数中直接调用该函数&#xff0c;没有做任何处理。然而实验时发现编译通不过。 解决过程&#xff1a; 查看MSDN后,发现AnimateWindow()函数说明中…

第一个openGL程序

一、工具的安装 因为要写C程序&#xff0c;为了便捷&#xff0c;这里我安装的Visual Studio&#xff1b; 免费使用90天&#xff01;安装好了之后&#xff0c;我们要为我们的开发安装相应的工具集&#xff1b; 因为我是要在windows上跑的&#xff0c;所以选择如下两个包&#xf…

[转]leo谈“80后”程序员为什么找不到工作?(1)

(应it168约稿写了关于“80后”程序员求职难的文章&#xff0c;我将分三次放在博客上&#xff0c;之后会引用网上的部分批评文章。) 80后的定义应该是&#xff1a;22至27岁之间、受过高等教育、刚刚毕业走向社会或者拥有几年工作经验年轻一代。不可否认&#xff0c;80后已成为职…