2014-01-28 52 views

回答

5

你要麼必須使用SELECT COUNT(*) ...用相同的條件下,或通過ROW_NUMBER功能與行數增加一列:

SELECT a.Emp,b.orders, RN = ROW_NUMBER() OVER (ORDER BY a.Emp,b.orders) 
FROM table as a inner join table1 b on a.ID=B.ID 

...或之後選擇使用@@ROWCOUNT

而不是ROW_NUMBER其中每行包含相同的總數量,而ROW_NUMBER將返回一個序列號,其中只有最後一條記錄(根據該ORDER BY)將有總次數更容易使用COUNT(*) OVER (Order By ...)

那麼Aaron已經提到in his answer

+0

那麼,'ROW_NUMBER()'函數將在順序應用,但結果並不保證依次而沒有匹配'ORDER BY'在外部查詢到被返回,特別是如果有一個*不同*'ORDER BY'。他們如何找到最大的'ROW_NUMBER()'值? –

+0

@AaronBertrand:你說得對,'COUNT(*)OVER'更容易(編輯)。 –

5
-- statement here 
SELECT @@ROWCOUNT; 

您也可以在聲明的每一行獲得它,但當然這是一個更貴一些,例如,

SELECT x, y, z, COUNT(*) OVER() FROM ...