SQL 2000中行加入序号用法

问题:如一表student 有二个字段KSH ,XM(考生号,姓名)都为字符型.要求加入一序号让人清楚是第多少行.

select * from student 为查询student表中所有数据的语句,以下是加入序号的语句:

1、应用IDENTITY函数取得每一行的行号,

2、因为identity只能用于INTO 的Select语句中,所以要求生成绩临时表#newtable:语句如下:

select identity(int,1,1) as 序号,* into #newtable from student;

及取有序号的数据表;

3、查询新表的目的数据;

在D7中可以用ADOQUERY中的SQL实现语句如下:

if object_id('tempdb.dbo.#T') is not null drop table #T
select identity(int,1,1) as 序号,* into #T from bdxt.dbo.student
select * from #T order by 序号

以下为IDENTITY在SQL2000帮助中的说明:

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 相同的类型。

注释

因为该函数在表中创建一个列,所以必须用下列方式中的一种在选择列表中指定该列的名称:

--(1)
SELECT IDENTITY(int, 1,1) AS ID_Num
INTO NewTable
FROM OldTable

--(2)
SELECT ID_Num = IDENTITY(int, 1, 1)
INTO NewTable
FROM OldTable
示例

下面的示例将来自 pubs 数据库中 employee 表的所有行都插入到名为 employees 的新表。使用 IDENTITY 函数在 employees 表中从 100 而不是 1 开始编标识号。

USE pubs
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_NAME = 'employees')
   DROP TABLE employees
GO
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'

SELECT emp_id AS emp_num, 
   fname AS first, 
   minit AS middle, 
   lname AS last, 
   IDENTITY(smallint, 100, 1) AS job_num, 
   job_lvl AS job_level, 
   pub_id, 
   hire_date
INTO employees 
FROM employee
GO
USE pubs
EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'
第二种方法:(2010年1月22日)
select 编号=(select count(ksh) from student as a where a.ksh<=b.ksh),* from student as b order by 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值