t-sql加入帮助

时间:2011-03-23 20:09:32

标签: sql-server tsql sql-server-2008

Table_A

TxID    RelatedTxID
-------------------
1       NULL
2       NULL
3       1

Table_B

OrderID    TxID    OrderDescription
-----------------------------------
1           1      Description_1
2           2      Description_2

我想得到一个输出,它会给我交易的订单描述。但如果交易没有订单描述,我想显示它的相关交易的订单描述(相关交易将始终有订单描述)

Output

TxID   RelatedTxID    OrderDescription
------------------------------------
1       NULL        Description_1
2       NULL        Description_2
3       1           Description_1

我正在考虑下面的内容,但仍然坚持ISNULL表达式中的内容。

select 
a.TxID, 
a.RelatedTxID, 
ISNULL(b.OrderDescription, <<get its related transaction's order description>>)
from Table_A a
left outer join Table_B b
on a.TxID = b.TxID

由于

1 个答案:

答案 0 :(得分:3)

select 
    a.TxID, 
    a.RelatedTxID, 
    ISNULL(b1.OrderDescription, b2.OrderDescription)
from Table_A a
left outer join Table_B b1 on a.TxID = b1.TxID
left outer join Table_B b2 on a.RelatedTxID = b2.TxID