Я бы, наверное, создал таблицу UDF. Что-то вроде этого:
CREATE FUNCTION [owner].[function_name]
(
@parm1 <datatpe> = <default>
)
RETURNS TABLE
AS
RETURN
(
SELECT <column1, column2, ...>
FROM <table, view, etc.>
WHERE <some condition applies> -- optional clauses
)
подробнее здесь .
Может показаться, что это пустая трата, если вы возвращаете только одну строку, но я думаю, что ваши альтернативы (xml, анализ значений из строки на лету) усложнят ситуацию.