Mysql SQL Server中是否有与SQL\u CALC\u FOUND\u行等效的行?

Mysql SQL Server中是否有与SQL\u CALC\u FOUND\u行等效的行?,mysql,sql-server,tsql,Mysql,Sql Server,Tsql,我有一个mssql查询: with RESULT as(select TITLE, URL, ROW_NUMBER() over (order by URL) as SeqValue from WEBSITE select * from RESULT where SeqValue>=20 and SeqValue<=40 在本例中,返回值是mysql查询的总记录。 总记录与LIMIT和NO LIMIT指令相同。 我将数据库从mysql转换为mssql,我对此有问题。 请帮帮我

我有一个mssql查询:

with RESULT as(select  TITLE, URL, ROW_NUMBER() over (order by URL) as SeqValue from WEBSITE 
select * from RESULT where SeqValue>=20 and SeqValue<=40 
在本例中,返回值是mysql查询的总记录。 总记录与LIMIT和NO LIMIT指令相同。 我将数据库从mysql转换为mssql,我对此有问题。 请帮帮我…

“结果”将包括网站上的所有记录,对吗?所以只需“从网站中选择计数(*)

我希望

 with result as(...what you have...)
 select count(*) from result;
也要工作,做一些不必要的工作。什么不符合您的要求?

试试:

declare @row_count int
select @row_count = count(*), URL from WEBSITE limit ?, ?
select @row_count

在尝试从MySQL迁移到SQL SERVER时,我也有同样的担忧 解决方案是在查询中插入以下内容:

COUNT (*) OVER () AS ROW_COUNT
ROWCOUNT显示在结果中的所有行中,那么您只需从第一行结果(如果存在)中检索ROW_COUNT,并且不要忘记重置结果指针et Voila;-)

例如:

select COUNT (*) OVER () AS ROW_COUNT, URL from WEBSITE limit ?, ?

我希望这会有所帮助

我知道这已经太晚了,但在分页和限制方面可能会有所帮助

WITH paging AS (SELECT ROW_NUMBER() OVER(ORDER BY {$sortField} {$sortOrder}) as rowId, count(1) over() as ROW_COUNT, key FROM {$table})
SELECT * FROM {$table} result INNER JOIN paging ON result.key = paging.key WHERE rowId BETWEEN {$start} and {$end}
它具有排序字段的属性,排序顺序和键用于连接原始表。开始和结束是分页的值


现在您在
ROW\u COUNT
字段中有了带必填字段的记录总数。它也从1开始,而不是从0开始。

我需要从SeqValue>=20和SeqValue的结果中选择count(*),我不知道,你能不能显示几行你想要的数据,你说你想要标题和url。。。行中还有什么,计数是多少?MSSQL服务器中没有限制,btwGreat。!我很长时间以来一直在努力解决这个问题:)
WITH paging AS (SELECT ROW_NUMBER() OVER(ORDER BY {$sortField} {$sortOrder}) as rowId, count(1) over() as ROW_COUNT, key FROM {$table})
SELECT * FROM {$table} result INNER JOIN paging ON result.key = paging.key WHERE rowId BETWEEN {$start} and {$end}