sql查詢時增加自動編號和分頁


查詢時加序號  
a:沒有主鍵的情形:

Select   identity(int,1,1)   as   
iid,*   into   #tmp   from   TableName   
Select   *   from   #tmp   
Drop 
  table   #tmp  

b:有主鍵的情形:

Select   (Select   sum(1)   from   
TableName   where   KeyField   <=   a.KeyField)   as   iid,*   from   
TableName   a  

eg:
select (select sum(1) from user_Admin where 
id<=a.id) as ID,id,displayName from user_Admin a order by a.ID asc



 

SELECT 序號= (SELECT COUNT(客戶編號) FROM 客戶 AS LiMing                  WHERE LiMing.客戶編號<= Chang.客戶編號),        客戶編號, 公司名稱 FROM 客戶 AS Chang ORDER BY 1; GO
/* 方法二: 使用SQL Server 2005 獨有的RANK() OVER () 語法*/ SELECT RANK() OVER (ORDER BY 客戶編號 DESC) AS 序號,          客戶編號, 公司名稱 FROM 客戶; GO
/* 方法三*/ SELECT 序號= COUNT(*), LiMing.客戶編號, LiMing.公司名稱    FROM 客戶 AS LiMing, 客戶AS Chang    WHERE LiMing.客戶編號>= Chang.客戶編號    GROUP BY LiMing.客戶編號, LiMing.公司名稱    ORDER BY 序號; GO
/* 方法四 建立一個「自動編號」的字段,然后將數據新增至一個區域性暫存數據表, 然后由該區域性暫存數據表中,將數據選取出來,最后刪除該區域性暫存數據表 */ SELECT 序號= IDENTITY(INT,1,1), 管道, 程序語言, 講師, 資歷 INTO #LiMing FROM 問券調查一; GO SELECT * FROM #LiMing; GO DROP TABLE #LiMing; GO
/* 方法五 使用 SQL Server 2005 獨有的ROW_NUMBER() OVER () 語法 搭配 CTE (一般數據表表達式,就是 WITH 那段語法)選取序號2 ~ 4 的數據 */ WITH 排序后的圖書 AS   (SELECT ROW_NUMBER() OVER (ORDER BY 客戶編號 DESC) AS 序號,    客戶編號, 公司名稱    FROM 客戶) SELECT * FROM 排序后的圖書 WHERE 序號 BETWEEN 2 AND 4; GO

 

------------分頁使用---------------------------

 SELECT  RANK() OVER (ORDER BY id asc) AS no,* into #temp FROM Bbs_reply  select * from  #temp where no between 1 and 100 drop table  #temp

-------------------------------序號

給查詢出的SQL記錄添加序號列,解決方法有以下兩種 第一:

 
         

select ROW_NUMBER() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a1

 
         

(table 為表名,字段為表a中的字段名) 第二:

 
         

select RANK()  OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a1

 
         

(table 為表名,字段為表a中的字段名)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM