SQL-如果列为null,则从另一个表获取值

SQL-如果列为null,则从另一个表获取值,sql,sql-server,select,Sql,Sql Server,Select,我正在为数据协调系统建立匹配规则,需要您的建议来调整我的sql,因为它目前没有返回我需要的内容。 有两个源表: Table X Table Y --------------------- ---------------------- Exec_ID From To Exec_ID From To 1 A B 1 B C 2

我正在为数据协调系统建立匹配规则,需要您的建议来调整我的sql,因为它目前没有返回我需要的内容。
有两个源表:

      Table X                 Table Y
---------------------         ----------------------
Exec_ID   From  To            Exec_ID     From  To
1         A     B             1           B     C
2         A     B             2           B     C
3         A     B             3           B     C
4         A     B
                              5           B     C
匹配条件为:

X.To = Y.From
X.Exec_ID = Y.Exec_ID
如果有A->B,然后是B->C,那么最后应该返回A->C。
如果只有A->B,没有其他B->C,则返回A->B

因此,输出应该如下所示

From    To
---------
A       C
A       C
A       C
A       B
我使用的SQL是:

select X.From, Y.To
from x
    left outer join y on
    x.To = Y.From
    and x.Exec_ID = y.Exec_ID
它返回如下值

A C
A C
A C
A Null
所以最后一条记录不正确,因为它应该是A B。请帮助调整。

检查是否为空

select X.From, [To] = COALESCE(Y.To, X.To)
from x
    left outer join y on
    x.To = Y.From
    and x.Exec_ID = y.Exec_ID
from也是一个需要放在括号中的关键字。