让select查询结果额外增加自增的伪序号列
更新时间:2024-02-01 02:41:01 阅读量: 教育文库 文档下载
让select查询结果额外增加自增的伪序号列
(2008-05-15 16:36:54) 转载 标签: 分类: 数据库
sql it
在基于数据库的系统的开发过程中,有时需要让select返回的查询结果中存在一列实际的数据库表中并不存在的序号列,即在查询结果中额外增加自增的伪序号列。从网络上可以找到一些解决方案,但总结起来主要有三种: 1.使用数据库自带的序号函数实现
Oracle提供的ROWNUM,SQL Server 2005提供的RANK,ROW_NUMBER都可以比较简单地实现这种需求,不过这种方法对我并不适用,因为我用的是SQL SERVER 2000。
2.使用临时表实现
SQL的IDENTITY函数可以提供自增的序号,但只能用在带有INTO table子句的SELECT语句中,所以如果可以使用临时表的情况下可以使用这种实现方法。和第一种方法一样,这种实现方法对我也不适用,因为现在的项目规定不能使用临时表。 eg:
SELECT IDENTITY(INT,1,1) as seq,field1,field2,...,fieldn INTO tmpTableName FROM srcTableName; SELECT * FROM tmpTableName; DROP TABLE tmpTableName;
3.使用SQL标准语法实现
第三种思路是:将结果集中能确定一行数据唯一性的某列或多列组合成标识符,再把结果集中小于等于标识符的记录数合计成一列,从而满足需求。 eg: SELECT (SELECT COUNT(id) FROM srcTableName AS tbl1 WHERE tbl1.id<=tbl2.id) as seq,field1,field2,...,fieldn
FROM srcTableName AS tbl2 ORDER BY 1 ;
图表1
如果数据表本身并不内含自动地增编号的字段时,要怎么做才能够让SELECT查询结果如图表1所示,额外增加自动递增序号呢?我们提供下列五种方法供您参考: USE北风贸易; GO
SELECT序号= (SELECT COUNT(客户编号) FROM 客户 AS LiMing WHERE LiMing.客户编号<= Chang.客户编号), 客户编号,公司名称 FROM客户 AS Chang ORDER BY 1; GO
SELECT RANK() OVER (ORDER BY 客户编号 DESC) AS 序号, 客户编号,公司名称 FROM客户; GO
SELECT序号= COUNT(*), LiMing.客户编号, LiMing.公司名称 FROM 客户 AS LiMing, 客户AS Chang WHERE LiMing.客户编号>= Chang.客户编号 GROUP BY LiMing.客户编号, LiMing.公司名称 ORDER BY 序号; GO
SELECT序号= IDENTITY(INT,1,1),管道,程序语言,讲师,资历 INTO #LiMing FROM问券调查一; GO
SELECT * FROM #LiMing; GO
DROP TABLE #LiMing; GO
WITH排序后的图书 AS
(SELECT ROW_NUMBER() OVER (ORDER BY 客户编号 DESC) AS 序号, 客户编号,公司名称 FROM 客户)
SELECT * FROM 排序后的图书 WHERE序号 BETWEEN 2 AND 4;
GO
Sql知识链接
http://wenku.http://www.wodefanwen.com//view/0723f1d9ad51f01dc281f143.html
正在阅读:
2012花荣清华讲座06-18
2022年云南农业大学农学与生物技术学院805植物生物化学之生物化04-16
参考文献01-27
高一军训小结800字5篇02-06
z苯胺类09-12
参考文献09-09
名胜古迹与文化试卷03-08
道路硬化合同书12-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 额外
- 序号
- 增加
- 结果
- select
- 查询
- 北师版小学数一到四年级各个单元知识点梳理学 2
- 职业技能鉴定指导书抄表核算收费员(第2版)计算题
- 五年级奥数因数与倍数练习题
- 2011年春季天门中学自主招生考试数学试题
- C#在LINQ中使用GroupBy实现数据分组
- 18年度市森林公安局工作总结及18年工作目标计划
- Linux操作系统 试题
- 品牌茅台白酒关于购酒赠房大型互动活动营销策划方案 - 图文
- 90后的女生学什么技术才好?
- 南大-电子商务概论第(2)次作业
- 2015年医疗质量与安全教育培训记录 - 图文
- 11.钟楠 合唱校本课程纲要模板
- DMA分区计量管理平台说明书
- TD-LTE CSFB功能及性能问题分析
- 云南科学技术奖推荐书 - 图文
- 贵州省仿古建筑工程计价定额(2016版)
- 14春市场营销策划复习指导
- 赣榆区第二届乡村教师专业技能提升全员培训与竞技活动方案
- 中小民营企业人才流失原因及其对策
- 计算所组装与网络应用教程A2 - 图文