SQL错误:多部分标识符“s.OrderType”不可能 界。
from Table1 as c
inner join Table2 as s on c.RequestID = s.ReqID
inner join dbo.fn_getValues(s.OrderType) as gcd on c.ReqID = gcd.ReqID
答案 0 :(得分:2)
您需要使用cross apply
代替inner join
,并将on
子句移至where
:
from Table1 as c
inner join Table2 as s
on c.RequestID = s.ReqID
cross apply dbo.fn_getValues(s.OrderType) as gcd
where c.ReqID = gcd.ReqID
问题是对于连接,表表达式(join
后面的位)必须是不可更改的。如果加入表值函数,则不是这样:表表达式取决于另一个表中的值。这就是为什么我们有cross apply
。