我有一个表值函数,该函数返回2列和1行。我想在select语句中使用这些值。请帮助我从表中获取值。
编辑(根据OP的评论)
就像是
select a,b (select c1 from MyTableFunction(Param1, Param2)) as c,
(select c2 from MyTableFunction(Param1, Param2)) as d
from main_table
如果是Sql Server,则非常简单:
SELECT Col1, Col2
FROM Schema.MyTableFunction(Param1, Param2);
编辑
如果传递给函数的参数是常量/独立于其他联接表,则可以对其使用a CROSS JOIN
,对其进行别名并使用结果列。
SELECT a,b, X.Col1 as c, X.Col2 as d
FROM main_table mt
CROSS JOIN MyTableFunction(123, 'SomeConstant') AS X;
但是,如果需要在连接期间将表中的列传递到表值函数中,则需要使用 CROSS APPLY
SELECT a,b, X.Col1 as c, X.Col2 as d
FROM main_table mt
CROSS APPLY MyTableFunction(mt.Col1, mt.Col2) AS X;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句