Ada beberapa cara untuk menyelesaikan ini. Cara termudah adalah memodifikasi prosedur tersimpan untuk memungkinkan Anda memfilter kumpulan hasil secara langsung, tetapi saya berasumsi karena alasan tertentu Anda tidak dapat melakukan ini.
Yang perlu Anda lakukan adalah menyimpan hasil prosedur tersimpan dalam tabel/tabel temp seperti ini:
DECLARE @tablevar table(col1,..
INSERT INTO @tablevar(col1,..) exec MyStoredProc 'param1', 'param2'
SELECT col1, col2 FROM @tablevar WHERE col1 = 'abc'
EDIT:Jika Anda dapat mengedit subquery:
Proc Tersimpan Lama:...SELECT*FROMMyTableWHERECol1 =@param1 ANDCol2 =@param2
Proc Tersimpan Baru:
....
SELECT
*
FROM
(SELECT
*
FROM
MyTable
WHERE
Col1 = @param1 AND
Col2 = @param2
) a
WHERE
Col3 = FilterRule1
tapi mungkin saya tidak memahami proc Anda yang tersimpan di sini sepenuhnya. Tabel temp di sini sebenarnya bukan solusi yang paling berkinerja dan bisa sedikit merepotkan, tetapi jika itu berhasil untuk Anda, ikuti saja, tetapi saya mengalami kesulitan membayangkan situasi di mana Anda tidak bisa hanya memodifikasi proc tersimpan Anda menjadi gunakan sub-kueri alih-alih tabel temp.