在select语句中,我调用function,此函数以整数形式返回%value(计算百分比)。我的要求是当第一个百分比匹配到90%时停止执行查询。
请在下面查询。
Select Name, Calculatepercentage(Name)
from emp
在上面的查询中,Calculatepercentage
是函数,它将以整数形式返回%value。
让我们在emp表中说我有100条记录,在100条记录中,30条记录标记的百分比是> = 90。
我想在找到第一个匹配时停止查询。让我们假设在第15条记录中我们发现了标记百分比91,然后停止在第15条记录执行查询。
我可以通过循环所有100条记录来完成此任务,当找到第一个匹配的记录时,我可以跳过循环。但是执行查询需要很多时间。在该循环中,我们需要调用函数100次,而循环需要花费大量时间。
select语句本身是否有可能满足上述要求。
谢谢!
答案 0 :(得分:0)
无法控制select
执行。您可以将条件放在where
中,也可以在表格中添加computed column
来涵盖此计算。
答案 1 :(得分:0)
这不是一个完美的解决方案,因为SELECT
查询没有这样的功能。但您可以根据您的标准选择第一条记录。请参阅以下查询,这将为您提供符合条件的第一条记录
SET ROWCOUNT 1
Select Name, Calculatepercentage(Name)
from emp WHERE Calculatepercentage(Name) >= 90
Order By Name
SET ROWCOUNT 0