2009-09-09 31 views
2

爲了測試目的,我需要編寫一個SQL查詢,其中包含 實際記錄編號作爲結果集中的一列。如果我的SELECT得到 帶有10條記錄作爲結果,我需要有一列 其中包含值1-10。(Postgress)記錄集中的實際記錄編號

有沒有一種方法可以實現這個沒有存儲過程通過 我的數據?

編輯:我需要這postgresql。

回答

1

對於postgresql請參閱: Simulating Row Number in PostgreSQL Pre 8.4

+0

thx,知道這個。只是希望有一個更簡單的方法。反正。 – KB22 2009-09-09 14:36:34

+0

我也問了一個問題,我自己回答:http://stackoverflow.com/questions/3397121/how-to-show-row-numbers-in-postgresql-query - 兩個答案爲9.0和8.4,略有不同從那篇文章 – vol7ron 2011-09-02 16:57:48

7

你可以分割你的數據,並獲得ROW_NUMBER()

例如:

SELECT FirstName, LastName, SalesYTD, PostalCode, 
     ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number' 
FROM Sales.vSalesPerson 
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0; 

請參閱以下內容: ROW_NUMBER (Transact-SQL)

+0

這個解決方案的好處是它可以用於任何寫入ISO SQL:2003標準的RDBMS。 – 2009-09-09 14:34:37

1

如果您使用的是8.4,則可以使用window functions(row_number())。

如果您在8.4之前,您可以在我的blog上使用技術I described