如何获取已执行的select语句中的总行数?

时间:2014-01-28 20:36:29

标签: sql join count sql-server-2012

如何执行后获得的行数?

我的查询是:

SELECT a.Emp,b.orders 
from table as a inner join table1 b 
on a.ID = B.ID

如何找到上述连接中返回的行数?

2 个答案:

答案 0 :(得分:6)

-- statement here
SELECT @@ROWCOUNT;

你也可以在声明的每一行都得到它,但当然这有点贵,例如。

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

答案 1 :(得分: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更容易使用COUNT(*) OVER ( Order By ...),其中每行包含相同的总计数,而ROW_NUMBER将返回一个序列号,其中只有最后一条记录(符合{ {1}})将有总计数。

所以Aaron已经指出in his answer