日期:2014-05-20  浏览次数:21228 次

让SELECT 查询结果自动增加递增序号
如果数据表本身不含自动地增编号的字段时,要怎么做才能够让SELECT 查询结果自动增加递增序号呢?提供下列三种方法供您参考:
/* 方法一*/
SELECT 序号= (SELECT COUNT(客户编号) FROM 客户 AS a
WHERE a.客户编号<= b.客户编号),
客户编号, 公司名称
FROM 客户 AS b ORDER BY 序号;
GO
/* 方法二:*/
SELECT 序号= COUNT(*), a.客户编号, a.公司名称
FROM 客户 AS a, 客户AS b
WHERE a.客户编号>= b.客户编号
GROUP BY a.客户编号, a.公司名称
ORDER BY 序号;
GO
/* 方法三
建立一个「自动编号」的字段,然后将数据新增至一个区域性暂存数据表,
然后由该区域性暂存数据表中,将数据选取出来,最后删除该区域性暂存数据表
*/
SELECT 序号= IDENTITY(INT,1,1), INTO #start 客户编号, 公司名称
FROM 客户;
GO
SELECT * FROM #star;
GO
DROP TABLE #star;
GO

------解决方案--------------------
en
------解决方案--------------------
如果是oracle可以用sequences,呵呵。
------解决方案--------------------
在ms sql2005 用法最简单
ROW_NUMBER() OVER(order by ID) as 序号
------解决方案--------------------
select ROW_NUMBER() OVER(order by 字段,排序类型),* from t2

order by 字段,排序类型
是确定行号按怎样的顺序分
------解决方案--------------------

------解决方案--------------------

------解决方案--------------------
楼主指的是在sql server 2000中的吧,这三个方法确实不错
------解决方案--------------------
学习
[color=#FFFF00][/color]
------解决方案--------------------
探讨
select ROW_NUMBER() OVER(order by 字段,排序类型),* from t2

order by 字段,排序类型
是确定行号按怎样的顺序分

------解决方案--------------------
学习
------解决方案--------------------
学习
------解决方案--------------------
好方法,收了