use*_*792 4 mysql t-sql sql-server
我有这个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
Run Code Online (Sandbox Code Playgroud)
我想知道如果where语句不在那里,这个查询会返回多少记录.我尝试和许多其他方式select count(*) from RESULT尝试,@@ROWCOUNT但没有工作.我需要来自select的TITLE和URL,最后我需要select的总记录.
例如在mysql查询中我有prepareStatement使用SQL_CALC_FOUND_ROWS:
select SQL_CALC_FOUND_ROWS TITLE, URL from WEBSITE limit ?, ?
and after this select i have:
select FOUND_ROWS()
Run Code Online (Sandbox Code Playgroud)
在此示例中,返回值是mysql查询的总记录.总记录与LIMIT相同且没有LIMIT指令.我将数据库从mysql转换为mssql,我有这个问题.请帮我...
小智 10
当我尝试从MySQL迁移到SQL SERVER时,我有同样的担心,解决方案是在您的查询中注入此内容:
COUNT (*) OVER () AS ROW_COUNT
Run Code Online (Sandbox Code Playgroud)
ROWCOUNT出现在结果的所有行中,然后它只剩下你从第一行结果中检索ROW_COUNT(如果存在)并且不要忘记重置结果指针et Voila ;-).
例如:
select COUNT (*) OVER () AS ROW_COUNT, URL from WEBSITE limit ?, ?
Run Code Online (Sandbox Code Playgroud)
我希望它会有所帮助
“结果”将包括网站中的每条记录,对吧?所以只需“从网站中选择 count(*)”。
我希望
with result as(...what you have...)
select count(*) from result;
Run Code Online (Sandbox Code Playgroud)
还要工作,做一些不必要的工作。这有什么不能达到你想要的效果呢?
| 归档时间: |
|
| 查看次数: |
5982 次 |
| 最近记录: |