如何将两个表合并为一个显示两个表中的列的表?我的一个表是常规表,我需要从这个表中将值提供给另一个表,该表是标量值函数作为参数。
例如
T1 -> | c1 | c2 | c3 |
________________
T2 -> fnGetValue(@c1) -> one column table
我需要组合这两个表,但 c1 需要作为参数传递以从 T2 获取值。
如何将两个表合并为一个显示两个表中的列的表?我的一个表是常规表,我需要从这个表中将值提供给另一个表,该表是标量值函数作为参数。
例如
T1 -> | c1 | c2 | c3 |
________________
T2 -> fnGetValue(@c1) -> one column table
我需要组合这两个表,但 c1 需要作为参数传递以从 T2 获取值。
如果fnGetValue
是表值函数,则可以使用APPLY
运算符:
select t1.c1, t1.c2, t1.c3, t2.*
from table1 t1
outer apply fnGetValue(t1.c1) t2
来自MSDN 文档:
OUTER APPLY 返回生成结果集的行和不生成结果集的行,在表值函数生成的列中具有 NULL 值。
如果fnGetValue
是标量函数,那么您应该能够使用:
select t1.c1, t1.c2, t1.c3, fnGetValue(t1.c1) as Value
from table1 t1