Sql sever 分组排序
生活随笔
收集整理的這篇文章主要介紹了
Sql sever 分组排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 維護人事的時候人事局要求加入一個新功能,詳細需求例如以下:加入的人員在同一個單位的依照順序編號而且單位也要實現時間排序,也就是說有兩個排序,第一單位名稱排序。先創建的一直在前。然后依照創建時間依次排序,第二人員排序。每一個單位的人依照一定的編碼進行排序。這里聽了師哥的建議採用的是給每一個新加的單位獨立編號,比方第一個創建的單位是1,然后依次是2、3、4···這樣就能非常好的排序啦。這里我針對要操作的表新建了一個觸發器。以此來實現這個功能。詳細代碼與說明例如以下。
--============================================= --Author: 徐鳳竹 -- Create date:2015年7月7日16:10:04 --Description: 插入數據時查看是否存在該單位名稱,沒有則加入單位名稱,實現分組查看 --============================================= ALTER TRIGGER[dbo].[trg_addoutstanding]ON [dbo].[T_OutstandingDispatch]AFTER INSERT,UPDATE AS declare @myID varchar(50), @mycompany varchar(50), @mygroupid bigint, @sum bigint, @maxnum bigint --在新插入內容中獲取檔案編號,單位名稱 select @myID=number,@mycompany=companyName frominserted if update(companyName) BEGIN --在表中查看有同樣單位名稱的記錄總數 select@sum=COUNT(*) from T_OutstandingDispatch where companyName =@mycompany --查詢表中最大的組號,以便為新單位編組號 select@maxnum=MAX(groupID) from T_OutstandingDispatch --查詢同樣單位的組號(存在)。以便為新單位編組號 selecttop 1 @mygroupid=groupID fromT_OutstandingDispatch where companyName =@mycompany --假設有同樣單位名稱的記錄大于1(排除自身),則給新單位賦予同樣組號。否則按序編寫新組號 if(@sum>1) updateT_OutstandingDispatch setgroupID=@mygroupid where number =@myID else updateT_OutstandingDispatch setgroupID=@maxnum+1 where number =@myID END?
?
?
轉載于:https://www.cnblogs.com/yangykaifa/p/6872697.html
總結
以上是生活随笔為你收集整理的Sql sever 分组排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AlertDialog中的EditTex
- 下一篇: 线性可分 与线性不可分