我有这个SQL查询:
SELECT TOP 10 * FROM MyTable
如何判断结果是否缩短,即MyTable实际上有多于10行?
答案 0 :(得分:9)
最简单的方法是添加一个COUNT..OVER列,该列返回同一查询中表中的总行数:
SELECT TOP 10 *, COUNT(*) OVER() As TotalRows FROM MyTable
在执行FROM和WHERE子句之后计算 之前的
答案 1 :(得分:5)
金手指:
SELECT TOP 11 * FROM MyTable
并检查是否有11行:-)然后忽略第11行。请注意,根据您撰写的评论,您可能无法理解:您执行此查询而不是TOP 10
查询。
如果有< = 10行,那么整个结果集将由TOP 10
返回。如果有11行,那么显然TOP 10
就不够了。
答案 2 :(得分:2)
答案 3 :(得分:0)
您可以使用count(*)
作为额外列返回总行数。
这样的事情:
select top 10 T1.*, T2.Total
from MyTable as T1
outer apply (select count(*) as Total from MyTable) as T2