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

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

Patricia Arquette
發布: 2024-12-29 20:52:16
原創
466 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板