SQL where子句包含if子句失败

时间:2017-06-30 22:53:02

标签: sql-server

我的google foo失败了,我无法找到答案。 我有两个表,一个卖方表和一个交易表。 卖方可能有多笔交易或没有交易。 我想为每个卖家输出一行,如果他们有一个交易类型101,则将其与卖家名称一起输出。如果仍未输出卖方,则将交易类型保留为空。

当前查询:

SELECT        dbo.seller.de_name, dbo.de_transaction.tr_type
FROM            dbo.seller LEFT OUTER JOIN
                         dbo.de_transaction ON dbo.seller.de_rowid = 
dbo.de_transaction.tr_rowid_debtor
WHERE        (dbo.de_transaction.tr_type = N'101') OR
                         (dbo.de_transaction.tr_type IS NULL)
鲍勃史密斯正在输出,因为他有101,Jane Doe输出是因为她没有交易,但John Doe不是因为他有交易,而是因为他没有101型。 一个SQL小提琴将比我能更好地解释这一点。 http://sqlfiddle.com/#!6/efc87/1

谢谢!非常感谢。

1 个答案:

答案 0 :(得分:1)

Geez太容易了。 我不应该使用where子句。

SELECT        dbo.seller.de_name, dbo.de_transaction.tr_type
FROM            dbo.seller LEFT OUTER JOIN
                         dbo.de_transaction ON dbo.seller.de_rowid = 
dbo.de_transaction.tr_rowid_debtor AND dbo.de_transaction.tr_type = N'101'