我怎樣才能知道我在執行後獲得了多少行?如何獲取執行的select語句中的總行數?
我的查詢是:
SELECT a.Emp,b.orders
from table as a inner join table1 b
on a.ID = B.ID
如何找到返回在上面的行數加入?
我怎樣才能知道我在執行後獲得了多少行?如何獲取執行的select語句中的總行數?
我的查詢是:
SELECT a.Emp,b.orders
from table as a inner join table1 b
on a.ID = B.ID
如何找到返回在上面的行數加入?
你要麼必須使用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。
-- statement here
SELECT @@ROWCOUNT;
您也可以在聲明的每一行獲得它,但當然這是一個更貴一些,例如,
SELECT x, y, z, COUNT(*) OVER() FROM ...
那麼,'ROW_NUMBER()'函數將在順序應用,但結果並不保證依次而沒有匹配'ORDER BY'在外部查詢到被返回,特別是如果有一個*不同*'ORDER BY'。他們如何找到最大的'ROW_NUMBER()'值? –
@AaronBertrand:你說得對,'COUNT(*)OVER'更容易(編輯)。 –