我想写一个简单返回1或0的查询,这取决于是否有结果。
我在考虑用这个
IF EXISTS(
select * from myTable
where id=7 and rowInsertDate BETWEEN '01/01/2009' AND GETDATE()
)
SELECT 1
ELSE
SELECT 0这是一般的前提。
最终的结果实际上将是一个复杂得多的查询,它采用一对多的参数以及使用sp_executesql构建和执行的字符串
我的问题是,假设'count‘将返回376986,并且需要4秒来计算。使用IF EXISTS将在找到满足条件的一行时立即停止。
我正在决定是使用IF EXISTS,还是只查询@@ROWCOUNT,看看它是否大于零。
我确实尝试了一些测试,两者的运行速度几乎相同,但在两年的时间里,当有更多的数据时,它是否可能使用EXISTS来提高性能?
谢谢
发布于 2009-11-10 23:39:21
这是我能在我的项目中获得的最快速度:
SELECT CASE WHEN EXISTS (
select top 1 1
from myTable
where id=7
and rowInsertDate BETWEEN '01/01/2009' AND GETDATE()
) THEN 1 ELSE 0 END AS AnyDatahttps://stackoverflow.com/questions/1708815
复制相似问题