Existuje několik způsobů, jak to vyřešit. Nejjednodušší by bylo upravit uloženou proceduru tak, abyste mohli přímo filtrovat sadu výsledků, ale předpokládám, že z nějakého důvodu to nemůžete udělat.
Co budete muset udělat, je uložit výsledky uložené procedury do tabulky / dočasné tabulky takto:
DECLARE @tablevar table(col1,..
INSERT INTO @tablevar(col1,..) exec MyStoredProc 'param1', 'param2'
SELECT col1, col2 FROM @tablevar WHERE col1 = 'abc'
EDIT:Pokud můžete upravit dílčí dotaz:
Starý uložený proces:...SELECT*FROMMyTableWHERECol1 =@param1 ANDCol2 =@param2
Nový uložený proces:
....
SELECT
*
FROM
(SELECT
*
FROM
MyTable
WHERE
Col1 = @param1 AND
Col2 = @param2
) a
WHERE
Col3 = FilterRule1
ale možná úplně nerozumím tvému uloženému procesu. Dočasná tabulka zde ve skutečnosti není nejvýkonnějším řešením a může být poněkud obtížná, ale pokud vám funguje, jděte s ní, ale mám problém představit si situaci, kdy byste nemohli jen upravit svůj uložený proc na místo dočasné tabulky použijte poddotaz.