sql查询时增加自动编号

查询时加序号 
a:没有主键的情形:

Select   identity(int,1,1)   as  
iid,*   into   #tmp   from   TableName  
Select   *   from   #tmp  
Drop
  table   #tmp

b:有主键的情形:

Select   (Select   sum(1)   from  
TableName   where   KeyField   <=   a.KeyField)   as   iid,*   from  
TableName   a

eg:
select (select sum(1) from user_Admin where
id<=a.id) as ID,id,displayName from user_Admin a order by a.ID asc

SELECT 序号= (SELECT COUNT(客户编号) FROM 客户 AS LiMing                  WHERE LiMing.客户编号<= Chang.客户编号),        客户编号, 公司名称 FROM 客户 AS Chang ORDER BY 1; GO
/* 方法二: 使用SQL Server 2005 独有的RANK() OVER () 语法*/ 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
/* 方法五 使用 SQL Server 2005 独有的ROW_NUMBER() OVER () 语法 搭配 CTE (一般数据表表达式,就是 WITH 那段语法)选取序号2 ~ 4 的数据 */ WITH 排序后的图书 AS   (SELECT ROW_NUMBER() OVER (ORDER BY 客户编号 DESC) AS 序号,    客户编号, 公司名称    FROM 客户) SELECT * FROM 排序后的图书 WHERE 序号 BETWEEN 2 AND 4; GO

------------分页使用---------------------------

SELECT  RANK() OVER (ORDER BY id asc) AS no,* into #temp FROM Bbs_reply  select * from  #temp where no between 1 and 100 drop table  #temp

时间: 2024-10-26 01:31:16

sql查询时增加自动编号的相关文章

DB2 SQL查询结果集自动编号、返回条数范围控制研究

DB2 SQL查询结果集自动编号.返回条数范围控制研究 摘要: DB2 SQL语句实现查询的记录自动编号.并根据编号进一步实现记录范围控制.分页查询. 环境: IBM DB2 Universal V9.1 Windows XP Professional 要求:写一个SQL语句,在查询结果中要显示出记录序号,这个序号是是根据记录顺序自动生成的. 测试初始化DB2 SQL脚本: drop table t_test; create table t_test (bs        bigint     

PL/SQL Developer中输入SQL语句时如何自动提示字段

在PL/SQL Developer中编写sql语句时,如果无法自动提示字段那是一件痛苦的事情,工作效率又低,在此演示下如何在PL/SQL Developer工具中自动提示字段,让开发者省时又省心,操作步骤如下:tools–>preferences–>user interface–>code assistant–>在右边选中authomatically activated即可,如 PL/SQL Developer中输入SQL语句时如何自动提示字段,布布扣,bubuko.com

sql查询时加上行号

sql查询时加上行号 sql查询的时候有时候要加上行号,这里做个备忘~ 1(建议采用),select row_number() over (order by col1) as no,newid() as id,*from Table1order by col1 2,select no=identity(int,1,1),newid() as id,* into  #temptable From  Table1order by col1Select * From #temptableDrop Ta

SQL查询结果增加序列号

SQL查询记录中增加序列号 根据学生成绩在查询结果中增加排名字段: 1.SELECT ROW_NUMBER() OVER (ORDER BY SCORE ASC) AS RANK,NAME,SCORE FROM GRADE ORDER BY SCORE; 此写法是直接在结果记录添加顺序排序序号 2.SELECT RANK() OVER (ORDER BY SCORE ASC) AS RANK,NAME,SCORE FROM GRADE ORDER BY SCORE; 此写法的根据排序依据列的值进

SQL第三课-自动编号与初涉约束

自动编号:auto_increment一张数据表中,要设定字段的唯一性,就会用到编号,确保编号的唯一性是避免重名和数据混乱的一种方式.主键,一张表只能并只有一个.在创建字段表时,指定 PRIMARY KEY;设置自动编号的记录一定要设置为主键.举例创建数据表3CREATE TABLE tb3(id SMALLINT UNSIGEND PRIMARY KEY AUTO_INCREMENT,usernname VARCHAR(20) NOT NULL);查看数据表的基本结构:show columns

SQL Server 重新恢复自动编号列的序号

1. truncate table tablename2. DBCC CHECKIDENT (tablename,reseed,1) truncate命令不但会清除所有的数据,还会将IDENTITY的SEED的值恢复到原始值. 而DBCC CHECKIDENT则更加方便一些,可以在不删除数据的情况下指定SEED的值. DBCC CHECKIDENT 只是将自动编排的索引号的指向移到了所指定的位置,实际的编号并没有发生改变,但有新记录插入时自动编号就会按照制定的记录号开始并累加,如果遇到累加的记录

mysql 查询结果增加自动递增的一列

1 set @rownum=0; 2 SELECT a.*, @rownum := @rownum +1 as sortid FROM a; 查询结果中的sortid此列是自动递增的从1开始

SQL查询时,根据日期范围查询周

周数据会有weekbegin和weekend两个字段,用来描述周的开始日期和结束日期. 现在项目中的日历控件不支持周查询,只支持日期查询,所以目前面临的问题是,根据时间范围,查询周. 最终sql如下: select uid,weekbegin,weekend,sum(activeCount),sum(newCount) from rv_Cloud_SummaryWeek where (date(weekbegin)>=date('2018-05-01') and date(weekbegin)<

SQL查询结果增加序号列

--sql 2000 select 序号 = (select count(1) from tb where 学号 < t.学号) + 1,学号 ,姓名 from tb t --sql 2005 select 序号 = row_number() over(order by 学号),学号 ,姓名 from tb --oracle select row_number() over(order by 学号) 序号,学号 ,姓名 from tb