Der er et par måder at løse dette på. Det nemmeste ville være at ændre den lagrede procedure, så du kan filtrere resultatsættet direkte, men jeg går ud fra, at du af en eller anden grund ikke er i stand til at gøre dette.
Det, du derefter skal gøre, er at gemme resultaterne af den lagrede procedure i en tabel / midlertidig tabel som sådan:
DECLARE @tablevar table(col1,..
INSERT INTO @tablevar(col1,..) exec MyStoredProc 'param1', 'param2'
SELECT col1, col2 FROM @tablevar WHERE col1 = 'abc'
EDIT:Hvis du kan redigere underforespørgslen:
Gammel lagret proc:...SELECT*FROMMyTableWHERECol1 =@param1 ANDCol2 =@param2
Ny lagret proc:
....
SELECT
*
FROM
(SELECT
*
FROM
MyTable
WHERE
Col1 = @param1 AND
Col2 = @param2
) a
WHERE
Col3 = FilterRule1
men måske forstår jeg ikke helt din gemte proc her. Et midlertidigt bord her er ikke rigtig den mest effektive løsning og kan være noget besværligt, men hvis det virker for dig, så gå med det, men jeg har problemer med at forestille mig en situation, hvor du ikke bare kunne ændre din lagrede proc til brug en underforespørgsel i stedet for en midlertidig tabel.