函数编写 SQL 如何给记录加序号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数编写 SQL 如何给记录加序号相关的知识,希望对你有一定的参考价值。

有五种方法:
一、需要用临时表来实现
select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
select * from #temp
Drop Table #temp
二、不用临时表,就必须有排序列,值唯一,做参考:
select (select count(*) from yourtable where col <= A.col) row, * from yourtable A order by col
三、在原表中增加一列来实现
alter table yourtable add ID int identity
select * from yourtable
alter table yourtable drop column ID
四、 使用SQL Server 2005 独有的RANK() OVER () 语法(测试 客户编号 也应该值唯一才对)
SELECT RANK() OVER (ORDER BY 客户编号 DESC) AS 序号, 客户编号,公司名称 FROM 客户
五、
SELECT 序号= COUNT(*), a.客户编号, b.公司名称
FROM 客户 AS a, 客户AS b WHERE a.客户编号>= b.客户编号
GROUP BY a.客户编号, a.公司名称
ORDER BY 序号
参考技术A 记录是查询出来的还是原始的数据记录呢?
如果是查询出来的或者增加记录:
IDENTITY(函数)
只用在带有 INTO table 子句的 SELECT 语句中,以将标识列插入到新表中。

尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。

语法
IDENTITY ( data_type [ , seed , increment ] ) AS column_name

参数
data_type

标识列的数据类型。标识列的有效数据类型可以是任何整数数据类型分类的数据类型(bit 数据类型除外),也可以是 decimal 数据类型。

seed

要指派给表中第一行的值。给每一个后续行指派下一个标识值,该值等于上一个 IDENTITY 值加上 increment 值。如果既没有指定 seed,也没有指定 increment,那么它们都默认为 1。

increment

用来添加到 seed 值以获得表中连续行的增量。

column_name

将插入到新表中的列的名称。

返回类型
返回与 data_type 相同的类型。
参考技术B 给查询出的SQL记录添加序号列,解决方法有以下两种
第一:
select ROW_NUMBER() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a
(table 为表名,字段为表a中的字段名)
第二:
select RANK() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a
(table 为表名,字段为表a中的字段名)
参考技术C lect里面的列的个数只能是固定的,所以我觉得,如果zm里的数据是动态的话,你必须动态生成这个语句。
select fjname, name, hm,
max(decode(zm, 'aaa', zm, null )) zm1, max(decode(zm, 'aaa', charge, null )) zm1charge,
max(decode(zm, 'bbb', zm, null )) zm2, max(decode(zm, 'bbb', charge, null )) zm2charge,
max(decode(zm, 'ccc', zm, null )) zm3, max(decode(zm, 'ccc', charge, null )) zm3charge,
max(decode(zm, 'ddd', zm, null )) zm4, max(decode(zm, 'ddd', charge, null )) zm4charge
from owe
group by fjname, name, hm;
另外,团IDC网上有许多产品团购,便宜有口碑
参考技术D 新建一个属性,在是否自动添加还是什么来着,点击“是”,增值为1

enumerate给列表加序号

#coding=utf-8
#给列表加上序号,enumerate(l1),默认从0开始
l1=[‘money‘,‘house‘,‘joo‘]
for item in enumerate(l1,1):
#print item
print item[0],item[1]

以上是关于函数编写 SQL 如何给记录加序号的主要内容,如果未能解决你的问题,请参考以下文章

sql语句里如何实现给查询记录添加自然序号?

怎么给批量文件加序号

如何在sql的查询结果中加入序号

怎样在SQl数据库的表格里添加“序号”表示字段

利用SQL语句产生分组序号

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