当前位置:首页 > 教育综合 > 正文

SQL Srver ADI列按1,2,3,4,5·······的顺序依次编号

用SQL语句生成新列--排序列(1,2,3,4,5,6,。。)

顺着你的思路说:现在是按VV1,VV2,VV3,VV4,VV5排序(适用于任意类型的字段): select no= (select count(1) from aaa t where t.vv1SQL数据库列自动生成编号?

两种方法:

1、用Truncate

TRUNCATETABLEname可以删除表内所有值并重置标识值

2、用DBCC CHECKIDENT

DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,

但如果表内有数据,则重设的值如果小于最大值可能会有问题,这时可以用 dbcc checkident("bc_pos",reseed)即可自动重设值。

注意:

只能为不允许空值且数据类型为 decimal、int、numeric、smallint、bigint 或 tinyint 的列设置标识属性。此外,不能为主键列设置标识属性。

扩展资料:

关于上述标识列的引用

如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替,例如,若要查询上例中ID等于1的行,

以下两条查询语句是等价的:

1、SELECT * FROM T_test WHERE IDENTITYCOL=1

2、SELECT * FROM T_test WHERE

sql里的怎么设置序号自然增长总是从1开始排列

通过rownum实现即可。 sql:select rownum , * from tablename where 条件语句。 解释:rownum是隐藏的,查询结果默认从1开始编号,所以肯定会是自然编号的,有多少条,编号就到多少。

sql2000里,怎么样给,有相同列的 数据添加一个递增的编号

表a,里面没有标识列里面有字段user,id............,不清楚你说的到底有没有id列,你的具体表结构不清楚,下面做几个假设:

1、表中有自增列row:

select(selectcount(*)fromtable1where[user]=t1.[user]androw>=t1.row)asid,[user]fromtable1ast1

orderby[user],id

2、表中没有自增列,但有其它列,其中有一列可以区分开每一行数据,假设为utime:

select(selectcount(*)fromtable1where[user]=t1.[user]andutime>=t1.utime)asid,[user]fromtable1ast1

orderby[user],id

3、如果上面的都没有,就要利用临时表了,先把表中的数据存到临时表table1(临时表带自增列row),然后按1中的方法查询。

sql数据库 建立三个表 student(学号 姓名 性别) sc(学号 课程号 成绩)course(课程号 课程名 分数 )

select 姓名,savg from (select 学号,avg(成绩)as savg from sc where 成绩<60 group by 学号 having count(学号)>=2) t1,student where t1.学号=student.学号 1. Group By 语句简介: Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。 2. Group By 的使用: 上面已经给出了对Group By语句的理解。基于这个理解和SQL Serv
展开全文阅读