我有一个 T-SQL 脚本,要求是我需要在 where 子句中调用一个存储过程。这个存储过程接受一个参数并返回一个位结果。请指导我如何做到这一点。
谢谢
编辑:我不能修改这个 sp 并使它成为一个函数。请
我有一个 T-SQL 脚本,要求是我需要在 where 子句中调用一个存储过程。这个存储过程接受一个参数并返回一个位结果。请指导我如何做到这一点。
谢谢
编辑:我不能修改这个 sp 并使它成为一个函数。请
您不能Stored Procedure
在 where 子句中使用,但可以User Defined Function
在 where 子句中使用。
如果您不能将 SP 转换为函数,那么您必须首先从执行 SP 中获取位值并在 where 子句中使用该变量。
您可以使用临时表来存储存储过程的输出并在 where 子句中使用它。临时变量中的列数必须与过程结果集中的列数相同,并且与存储过程结果集中的列具有精确的数据类型。例如,
create table #spResult ({columns as result of your sp})
insert into #spResult exec YourSP ({input parameters})
select * from yourtable
where col in (select col from #spResult)
drop table #spResult