如何在SQL Server 2008中同时执行两条命令
如何在SQL Server中同时执行两条命令?如何在SQL Server 2008中同时执行两条命令
我想根据行数得到一个表的行数和一些行。例如,我想获得一个表的行数,并假设我想在单个页面上获得最后50行。
我该怎么做?
EDIT 1):
考虑,我第一次得到数并返回给我100,我希望得到80到100 recordsin此时,另一含有交易可能会删除70到100条记录,我无法获得适当的记录
内联计数可以多次评估,也可以给出不同的结果。一个单独的CROSS JOIN方法在某些时候
参见将给出不同的结果为什么与摄制脚本:can I get count() and rows from one sql query in sql server?
;WITH aCTE AS
(
SELECT
*,
COUNT(*) OVER() AS TotalRows,
ROW_NUMBER OVER (ORDER BY SomeLatest DESC) AS rn
FROM
MyTable
) foo
SELECT
*
FROM
foo
WHERE
rn <= 50
select * from tableName1 where column1=(select count(*) from tableName2)
您的要求是高效率还是执行单个命令?这些不一定导致相同的事情。有关实现高效寻呼的良好讨论,请参阅this article和this follow-up discussion。不要重新发明轮子,也不要认为处理两者的单一命令必然会比其他解决方案更有效率。
如果我理解正确,你想要一个查询,做表中的所有记录的计数,并在同一时间只获得50行。 你可以做到这一点是这样的:
Select Top 50 Column1, column2, (Select count(ID) from table1) as total from Table1
个人而言,我更愿意执行两个查询。一个用于计数,另一个用于前50行(效率更高的IMo)
请参阅编辑1 – Arian
是否必须在两个命令,或者你确定,如果它仅仅是一个? –
如果你想根据行数选择你的选择 - 你需要首先**等待直到行数完成 - 你不能并行地完成这项工作...... –