2013-03-23 58 views
5

查詢次數,我有一個查詢,如下所示:獲得SQL

SELECT TOP 100 * 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1......... 

我如何可以檢索通過排除前100 我想將100條記錄返回回以及查詢返回的行數作爲受影響記錄的總數。 有沒有更簡單的方法來做到這一點,而不是沒有頂級關鍵字和包括計數再次編寫整個查詢? 如:

SELECT COUNT(1) AS TableCount 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1......... 
+0

當您記錄最前n個記錄時,您已經知道記錄的數量,爲什麼您需要計數? – 2013-03-23 03:32:41

+0

我的猜測是:他需要整個表格的行數(即分頁)。 – scones 2013-03-23 03:33:38

+0

是的,我想顯示計數,以便用戶知道它 – Alice 2013-03-23 04:01:32

回答

2

使用count(1)OVER()你會得到沒有記錄在TOTAL_COUNT列的表。

SELECT TOP 100 *, COUNT(1) OVER() as 'Total_Count' 
FROM TABLE1 T1 
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID 
WHERE T1.........