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