L'operatore APPLY dovrebbe fare il trucco:
SELECT *
from MarketDataMaster
cross apply dbo.fn_MarketDataDetails (MarketDataMasterID)
Questo essenzialmente chiama la funzione una volta per riga restituita da MarketDataMaster. "cross apply" funziona come un inner join, in quanto verranno restituite solo le righe per le quali i dati vengono restituiti dalla funzione; usa "applicazione esterna" per funzionalità simili ai join esterni sinistro.