2013-03-27 65 views
2

如何構建查詢以顯示自動遞增的數字?如何構建查詢以顯示自動遞增的數字?

我有一個查詢,select * from data,這會導致:

Name State 
a  malaysia 
b  Indonesia 

我想這一點:

No  Name State 
1  a  malaysia 
2  b  Indonesia 

我會怎樣做呢?

+0

http://stackoverflow.com/questions/6294382/access-sql-how-to-make-an-increment-in-select-query – mcalex 2013-03-27 01:52:41

+0

@mcalex專門用於訪問 – MikeSmithDev 2013-03-27 01:54:47

+0

是真的,但評論是相關的 – mcalex 2013-03-27 02:01:44

回答

3
SELECT Name 
, State 
, RANK() OVER (ORDER BY Name, State) as Ranking 
FROM Data 
+0

如何排名但查詢使用別名(as)? – rian 2013-03-27 02:18:10

+0

對,就是給Rank()列起個名字。你不需要「as」,但它是正確的。 – Vinnie 2013-03-27 02:50:34

0

我不知道是否有與數據庫無關的方式。

Oracle允許您聲明rownum(http://www.adp-gmbh.ch/ora/sql/rownum.html)作爲要返回的列。

H2支持這種語法以及

答案可能取決於數據庫的味道你使用。

0

既然你不說什麼數據庫讓剛剛讓PostgreSQL的:

選擇0 + ROW_NUMBER)OVER(ORDER BY名DESC)(如位置,* FROM test.users ORDER BY名

這可能在其他數據庫中有所不同(它肯定會)。這個想法應該是一樣的想法,所以這樣你就知道該怎麼做。應該很容易在其他方面做到這一點。