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