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