關於如何在查詢結果中新增自動編號

2021-04-17 06:37:32 字數 922 閱讀 7886

往往經常有這樣的需求,我需要在查詢的結果中新增一列類似於identity的數字,雖然在client程式設計中並不難實現,但是有時我想留用現有的class,不希望在client side做額外的coding,那麼就只有在sql裡面想辦法了

首先介紹一種用一條sql語句完成的辦法,原理是在結果中查詢大於等於該紀錄的紀錄條數,就可以得到它的rank了

example:

use pubs

select count(*) as rank, a1.au_lname, a1.au_fname

from authors a1, authors a2

where a1.au_lname + a1.au_fname >= a2.au_lname + a2.au_fname

group by a1.au_lname, a1.au_fname

order by rank

不過呢,這種方法有它的侷限性,第一是效能不好,第二是如果存在相同的紀錄,那麼rank就會出現並列的情況,比如出現兩個2,但是沒有3了

有沒有別的方法呢?當然有的,sql提供了乙個identity function,可以得到標識列的值,不過可惜的很的是,這個函式只能用於select into語句,所以我們只好引入乙個臨時表了

example:

use pubs

select identity(int, 1, 1) as rank,au_lname,au_fname

into #tmp

from authors

select * from #tmp

drop table #tmp

這種方法的效能和適用性都比第一種方法要強,不過缺點是必須通過幾條sql語句才能完成。

所以如果可能的話,一般還是建議在客戶端完成這一操作

thanks for your read and any advise.

關於如何在查詢結果中新增自動編號

往往經常有這樣的需求,我需要在查詢的結果中新增一列類似於identity的數字,雖然在client程式設計中並不難實現,但是有時我想留用現有的class,不希望在client side做額外的coding,那麼就只有在sql裡面想辦法了 首先介紹一種用一條sql語句完成的辦法,原理是在結果中查詢大於...

如何在Sitecore CMS中開啟內容編輯器

在sitecore中開發 時,大多數專案管理都來自內容編輯器。建立,刪除,修改,移動,發布,排序和檢視專案只是可以在content editor介面中處理的眾多任務中的一小部分。由於內容編輯器對於管理sitecore站點非常重要,因此有多種方法可以開啟內容編輯器介面。單擊啟動板上的 內容編輯器 按鈕...

關於Mybatis將查詢結果中新增常量列並返回

在使用mybatis的時候,查詢乙個集合返回給前台頁面,在有的時候,我們會新增乙個常量欄位到物件或者集合中,來標識這個物件屬於的型別等等情況,當前臺進行再次請求的時候攜帶此變數進行請求.但是 如果在資料庫中並沒有這個欄位的時候,查詢集合我們就需要前台進行這個欄位的編寫,寫死!我們可否直接將其對應的字...