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

use*_*331 2 sql join count sql-server-2012

我怎么能在执行后获得多少行?

我的查询是:

SELECT a.Emp,b.orders 
from table as a inner join table1 b 
on a.ID = B.ID
Run Code Online (Sandbox Code Playgroud)

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

Aar*_*and 6

-- statement here
SELECT @@ROWCOUNT;
Run Code Online (Sandbox Code Playgroud)

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

SELECT x, y, z, COUNT(*) OVER() FROM ...
Run Code Online (Sandbox Code Playgroud)


Tim*_*ter 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
Run Code Online (Sandbox Code Playgroud)

...或者@@ROWCOUNT在选择之后使用.

而不是ROW_NUMBER它更容易使用COUNT(*) OVER ( Order By ...),其中每行包含相同的总计数,而ROW_NUMBER将返回一个序列号,其中只有最后一个记录(acc.ORDER BY)将具有总计数.

所以Aaron 在他的回答中已经提到什么.