请问如何加入记录编号

nnoovvee 2008-08-24 12:59:29
如何给记录加入自动加一的编号?
表结构中不可能有自动编号的列,因为要数据复制。
如:table 有列name,email,要加入编号ID列
select inentity(int, 1, 1) as ID, name,email from Table into #temp
select * from #temp
drop table #temp
这样可以加入编号ID,但是用到临时表。不用临时表应该怎么实现呢?
...全文
119 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
muzhenxing013 2008-08-25
  • 打赏
  • 举报
回复
嘿嘿,看看 sql 2005的强大功能吧
---测试数据
select * from student

1 数学 77.000
2 语文 88.000
3 英语 70.000
4 科学 68.000
5 地理 88.000
6 生物 98.000

1、row_number() ----返回结果集分区内行的序列号

select ROW_NUMBER() OVER(ORDER BY SCORE ) AS PPP,* FROM STUDENT

-- 结果
1 4 科学 68.000
2 3 英语 70.000
3 1 数学 77.000
4 2 语文 88.000
5 5 地理 88.000
6 6 生物 98.000

2、NTILE -----函数将指定数据集划分成N个组,分组时由Orderby指定排序列。
4 科学 68.000 1
3 英语 70.000 2
1 数学 77.000 3
2 语文 88.000 4
5 地理 88.000 5
6 生物 98.000 6
3、rank dense_rank函数
select rank() OVER(ORDER BY SCORE ) AS PPP,* FROM STUDENT
1 4 科学 68.000
2 3 英语 70.000
3 1 数学 77.000
4 2 语文 88.000
4 5 地理 88.000
6 6 生物 98.000

select dense_rank() OVER(ORDER BY SCORE ) AS PPP,* FROM STUDENT
1 4 科学 68.000
2 3 英语 70.000
3 1 数学 77.000
4 2 语文 88.000
4 5 地理 88.000
5 6 生物 98.000


liangCK 2008-08-24
  • 打赏
  • 举报
回复
--示例数据
CREATE TABLE tb(Name varchar(10),Score decimal(10,2))
INSERT tb SELECT 'aa',99
UNION ALL SELECT 'bb',56
UNION ALL SELECT 'cc',56
UNION ALL SELECT 'dd',77
UNION ALL SELECT 'ee',78
UNION ALL SELECT 'ff',76
UNION ALL SELECT 'gg',78
UNION ALL SELECT 'ff',50
GO

--1. 名次生成方式1,Score重复时合并名次
SELECT *,Place=(SELECT COUNT(DISTINCT Score) FROM tb WHERE Score>=a.Score)
FROM tb a
ORDER BY Place
/*--结果
Name Score Place
---------------- ----------------- -----------
aa 99.00 1
ee 78.00 2
gg 78.00 2
dd 77.00 3
ff 76.00 4
bb 56.00 5
cc 56.00 5
ff 50.00 6
--*/



--2. 名次生成方式2,Score重复时保留名次空缺
SELECT *,Place=(SELECT COUNT(Score) FROM tb WHERE Score>a.Score)+1
FROM tb a
ORDER BY Place
/*--结果
Name Score Place
--------------- ----------------- -----------
aa 99.00 1
ee 78.00 2
gg 78.00 2
dd 77.00 4
ff 76.00 5
bb 56.00 6
cc 56.00 6
ff 50.00 8
--*/
水族杰纶 2008-08-24
  • 打赏
  • 举报
回复
sql2005用 row_number

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧