我有一个存储过程,我无法访问名为的编辑过程[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'
这样做的语法是什么?不幸的是,即使那是最佳选择,但我无权编辑存储过程。
您应该将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加载数据将存储过程的结果插入临时表中
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句