SQL 中使用 Row_Number 的不同行號
SQL 中的不同查詢用於從指定列中擷取唯一值。但是,在某些情況下,不僅需要顯示不同的值,還需要顯示其對應的行號。為了實現這一點,Row_Number 函數可以與 DISTINCT 關鍵字結合使用。
在提供的範例中,使用者嘗試將DISTINCT 與Row_Number 結合使用以顯示不同的值以及行號:
SELECT DISTINCT id, ROW_NUMBER() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
但是,此查詢僅產生不同的值,類似於以下查詢:
SELECT distinct id FROM table WHERE fid = 64
要解決此問題問題,可以使用DENSE_RANK 函數來取代Row_Number。 DENSE_RANK 將連續的行號指派給不同的值,無論資料中存在任何間隙。
這是更正的查詢:
SELECT distinct id, DENSE_RANK() OVER (ORDER BY id) AS RowNum FROM table WHERE fid = 64
此查詢將提供所需的結果:不同值的列表按預期具有相應的行號。
以上是如何在 SQL 中將行號指派給不同的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!