Con*_*ngo 7 c# sql sql-server sql-server-2008-r2 sql-server-2012
我有这个SQL查询:
SELECT TOP 10 * FROM MyTable
Run Code Online (Sandbox Code Playgroud)
如何判断结果是否缩短,即MyTable实际上有多于10行?
最简单的方法是添加一个COUNT..OVER列,该列返回同一查询中表中的总行数:
SELECT TOP 10 *, COUNT(*) OVER() As TotalRows FROM MyTable
Run Code Online (Sandbox Code Playgroud)
在执行FROM和WHERE子句之后但在应用TOP子句之前计算此总数.
作弊:
SELECT TOP 11 * FROM MyTable
Run Code Online (Sandbox Code Playgroud)
并检查是否有11行:-)然后忽略第11行.请注意,根据您撰写的评论,您可能无法理解:您执行此查询而不是TOP 10查询.
如果<= 10行,则返回整个结果集TOP 10.如果有11行,那么显然TOP 10是不够的.
您可以使用COUNT来获取总行数。
SELECT COUNT(*)
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
您可以检查该结果是否大于 10 以确定它是否超过 10 行。
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |