2011-01-06 23 views
7

我想創建一個SELECT查詢語句自動編號..喜歡..自動編號的SELECT語句在SQL Server

select * from tbl1 

會給我一切從表。

我希望得到的結果是...

1   data 
2   data 
3   data 

所以,我該怎麼做才能得到這個數字??

如..

select (for autonumber), * from tbl1 

在我的表中的數據會重複(沒有獨特的數據)

回答

19

使用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 
+0

啊..這是正確的答案。 我想要做......喜歡.. SELECT ROW_NUMBER()OVER(ORDER BY col1)AS rn,* FROM tbl1 where rn = 5;顯然它不能這樣工作..任何解決方案? – william 2011-01-06 06:02:43

0

您可能需要查找身份的偏移量,例如第二個表的最後一個ID:

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

然後使用ROW_NUMBER():