SQL-如果列为null,则从另一个表获取值
我正在为数据协调系统建立匹配规则,需要您的建议来调整我的sql,因为它目前没有返回我需要的内容。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
有两个源表:
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也是一个需要放在括号中的关键字。