SQL Server中select语句中的autonumber

时间:2011-01-06 05:46:15

标签: sql-server

我想用autonumber创建一个select查询语句..比如..

select * from tbl1

会从桌子上给我一切。

我想得到的结果是......

1         data
2         data
3         data

那我该怎么做才能得到那个号码.. ??

像..

select (for autonumber), * from tbl1

我的表中的数据将重复(没有唯一数据)

2 个答案:

答案 0 :(得分:22)

使用ROW_NUMBER

SELECT ROW_NUMBER() OVER (ORDER BY col1) AS rn, * FROM tbl1

要根据行号过滤结果,请使用以下命令:

SELECT * FROM
(
    SELECT ROW_NUMBER() OVER (ORDER BY col1) AS rn, * FROM tbl1
) T1
WHERE rn = 5

答案 1 :(得分:0)

您可能需要找到身份的偏移量,例如第二个表的最后一个ID:

DECLARE @lastAutoID int 
SET @lastAutoID = abs(( Select max(convert(float,[ConsID])) 
FROM [RXPIPEDB]...[consumption] ) )

然后使用ROW_NUMBER():

@lastAutoID + ROW_NUMBER() OVER (ORDER BY  oldICN_str)