现在有这么个需求,查询总数以及最后一条数据
两条SQL的话为 SELECT COUNT(1) FROM USER WHERE 相关条件
SELECT TOP 1 * FROM USER WHERE 相关条件 ORDER BY ID DESC
一条SQL想到的是
SELECT TOP 1 ROW_NUMBER()OVER(ORDER BY userid asc) as rownumber,* FORM USER WHERE 相关条件 ORDER BY rownumber DESC
这样rownumber列就是总数了,*即最后一天数据
有没有更好的方式?
select top 1 *,(select count(*) from Table_3 where xxx ) as rownumber from Table_3 where xxx order by id desc
其实写成两个语句未尝不行. 写成一个SQL 语句未必是性能最高的. 本来一个是查询TotalCount一个是查询最后一行数据. 两则要的信息不一致。没必要一个sql都查出来.反而影响可读性和性能.