首页 文章

选择满足存储过程中计算的条件的行

提问于
浏览
1

我有一个存储过程,它接受一个参数并返回true或false .

我需要从表中选择那些存储过程为它们返回true的行 .

例如,假设我的表有列: IdEmployeeNameAddressPhone

如果员工分别签订了服务 Contract ,则存储过程采用 IdEmployee 并返回 truefalse .

最后,一旦我获得了过滤的行集,那些服务收缩的行,我需要再次过滤它们以获得满足其他条件的那些行以最终获得最终结果 .

最好的方法是使用单个select获取最终结果,然后从该select中为where子句中的每一行执行存储过程,以选择存储过程返回true的那些行 . 不幸的是,这是不可能的,我无法在 select (where子句)中执行存储过程 .

我无法将存储过程更改为函数,我不想使用游标 .

我在考虑创建一个调用存储过程的标量函数,然后在select中使用标量函数 .

我怎样才能做到这一点?有任何想法吗?

1 回答

  • 0

    我自己没试过INSERT-EXEC,但它可能就是你所需要的 . 如果您创建临时表或表变量并使用INSERT-EXEC填充,则可以使用该表进行过滤 .

    --INSERT...EXECUTE procedure example  
    INSERT INTO dbo.EmployeeSales   
    EXECUTE dbo.uspGetEmployeeSales;  
    GO
    

相关问题