java - sql 在给定阈值处停止计数

标签 java sql sql-server hibernate count

我正在系统中生成报告,但某些报告返回大量结果。为了解决这个问题,我首先使用计数访问数据库,然后在代码中检查该计数是否高于某个阈值(例如 2000),然后不生成报告。

这在大多数情况下都很好,但有些报告有超过一百万个结果,这意味着计数需要几秒钟才能返回结果。

理想情况下,我想做的是将阈值(2000)放入我的sql语句中,如果达到该值则停止计数,并返回一些值(例如true或false,0或1,任何值),以便我知道它已经超出了它的极限。在sql中可以吗,到目前为止我找不到解决方案。

伪代码:在 count <= 阈值时从表中选择 count(1)

我正在使用 java、hibernate、sql server 2005。

任何帮助将不胜感激。

问候,

埃蒙

最佳答案

我认为这样的事情应该有效:

select count(1) from (
  select top 2000 *
    from table
   where ...
)

关于java - sql 在给定阈值处停止计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5475041/

相关文章:

java - 从 JDBC MSSQL 获取返回值

mysql - 如何合并两列并在其中进行搜索?

sql - mySQL中的地理位置:将大型数组放置在哪里,如何正确执行?

sql - vb.net sqlclient 插入输出

sql-server - 在 SQL Server 2008 中使用 select 语句加上附加列插入表

sql-server - SQL Server WHERE 子句中的与号 (&) 运算符

java - 使用 ScheduledExecutorService 的测试代码(不使用 Sleep)

java - 您可以使用增强的 for every 循环将元素添加到数组中吗?

java - 找不到 org.neo4j.batchimport

java - 迭代 ImmutableSet 和 ImmutableList 并改变对象