2008年6月5日 星期四

如何讓SELECT 查詢結果額外增加自動遞增序號

USE北風貿易;GO
/* 方法一*/
SELECT序號=(SELECTCOUNT(客戶編號)FROM客戶AS LiMing
WHERE LiMing.客戶編號<= Chang.客戶編號),
客戶編號,公司名稱FROM客戶AS Chang ORDERBY 1;

GO


/* 方法二: 使用SQL Server 2005 獨有的RANK() OVER () 語法*/

SELECTRANK() OVER (ORDER BY 客戶編號DESC) AS 序號,
客戶編號,公司名稱FROM客戶;

GO

/* 方法三*/

SELECT序號=COUNT(*), LiMing.客戶編號, LiMing.公司名稱
FROM客戶AS LiMing,客戶AS Chang WHERE LiMing.客戶編號>= Chang.客戶編號
GROUPBY LiMing.客戶編號, LiMing.公司名稱 ORDERBY序號;
GO
/* 方法四建立一個「自動編號」的字段,然後將數據新增至一個區域性暫存數據表,然後由該區域性暫存數據表中,將數據選取出來,最後刪除該區域性暫存數據表*/

SELECT序號= IDENTITY(INT,1,1),管道,程式語言,講師,資歷INTO #LiMingFROM問券調查一;GOSELECT*FROM #LiMing;GODROPTABLE #LiMing;

GO

/*方法五使用SQL Server 2005 獨有的ROW_NUMBER() OVER () 語法搭配CTE (一般數據表表達式,就是WITH 那段語法)選取序號2 ~ 4 的數據*/

WITH 排序後的圖書AS (SELECT ROW_NUMBER()OVER(ORDERBY客戶編號DESC)AS序號, 客戶編號,公司名稱 FROM客戶)SELECT*FROM排序後的圖書
WHERE序號BETWEEN 2 AND 4;

GO

沒有留言: