我有一个存储过程,我无权编辑名为[usp_ItemsAndDescriptions]
。
这给出了一个结果,我的电话看起来像这样:
USE [eboghandel]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[usp_ItemsAndDescriptions]
@StartDate = N'2014-06-01',
@EndDate = N'2014-06-19',
@Top = 10000
SELECT 'Return Value' = @return_value
GO
然后,此存储过程会提供字段列表。其中一个字段称为PressDescription
。
现在我想发表一个WHERE
声明,所以我可以说:
SELECT * FROM MYSTOREDPROCEDURERESULT mys WHERE mys.PressDescription = '1'
这样做的语法是什么?不幸的是,我没有权限编辑存储过程,即使这是最佳的。
答案 0 :(得分:1)
您应该将返回数据从SP加载到临时表,并通过WHERE子句过滤此表:
创建临时表:
CREATE TABLE #tmp
(
...
)
在表格中插入数据
INSERT INTO #tmp
EXEC usp_ItemsAndDescriptions
@StartDate = N'2014-06-01',
@EndDate = N'2014-06-19',
@Top = 10000
过滤数据
SELECT * FROM #tmp mys WHERE mys.PressDescription = '1'
同时检查此链接 - 有很多方法可以从SP Insert results of a stored procedure into a temporary table
加载数据