首頁 >資料庫 >mysql教程 >如何在 SQL 中將行號指派給不同的值?

如何在 SQL 中將行號指派給不同的值?

Patricia Arquette
Patricia Arquette原創
2024-12-29 20:52:16472瀏覽

How to Assign Row Numbers to Distinct Values in SQL?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn