Sql server SQL Server:从函数返回多个值

Sql server SQL Server:从函数返回多个值,sql-server,Sql Server,有没有办法从一个函数返回多个值?理想情况下,我知道语法是错误的 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_resul

有没有办法从一个函数返回多个值?理想情况下,我知道语法是错误的

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)
我根本没有使用SQL函数的经验,所以不确定这样的事情是否可以完成

感谢使用带交叉应用的内联表值函数:

输出:

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

Fiddle

您想要一口井,您可以返回一个表值函数或XML文档,但您使用的是标量值函数语法。select*from dbo.fn\u result.test1、t.test2、t.test3是多余的。我只会使用dbo.fn_resultt.test1、t.test2、t.test3它是如何冗余的?它返回set。Try in fiddleIt是多余的,因为您可以这样编写相同的查询:select*from select 1 as test1,2 as test2,3 as test3 t cross apply dbo.fn_resultt.test1,t.test2,t.test3 ca在我看来,它更干净,嵌套级别更少,不提供任何东西。@Blim,oo我现在明白了,thx
test1   test2   test3   val12   val13   val23
1       2       3       3       4       5