SQL Server: renvoie plusieurs valeurs à partir de la fonction

Est-il possible de renvoyer plusieurs valeurs d'une fonction? Idéalement, je cherche à faire quelque chose dans ce sens (je sais que la syntaxe est fausse!)

SELECT 1 as test1, 2 as test2, 3 as test3, fn_result(test1, test2, test3)[0] as result1, fn_result(test1, test2, test3)[1] as result2, fn_result(test1, test2, test3)[2] as result3 FUNCTION fn_result(val1, val2, val3) RETURN (val1 + val2, val2 + val3, val1 + val3) 

Je n'ai aucune expérience avec les fonctions SQL donc je ne sais pas si une telle chose peut être faite.

Merci

Utiliser la inline table valued function avec cross apply :

 Create function fn_result(@val1 int, @val2 int, @val3 int) returns table as Return (select @val1+@val2 as val12, @val1+@val3 as val13, @val2+@val3 as val23) go select * from (select 1 as test1, 2 as test2, 3 as test3) t cross apply dbo.fn_result(t.test1, t.test2, t.test3) 

Sortie:

 test1 test2 test3 val12 val13 val23 1 2 3 3 4 5 

Fiddle http://sqlfiddle.com/#!6/857c1/3