在sql中获取查询计数

Roh*_*uza 5 sql sql-server

我有一个查询如下:

SELECT TOP 100 *
FROM   TABLE1 T1
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID
WHERE  T1.........
Run Code Online (Sandbox Code Playgroud)

如何检索查询返回的行数(不包括前100个).我想返回100条记录以及受影响的记录总数.是否有更简单的方法来做,而不是在没有top关键字并包括count的情况下再次编写整个查询?例如:

SELECT COUNT(1) AS TableCount
FROM   TABLE1 T1
INNER JOIN TABLE2 T2 ON T1.ID = T2.ID
WHERE  T1.........
Run Code Online (Sandbox Code Playgroud)

mr_*_*air 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.........
Run Code Online (Sandbox Code Playgroud)