其中子句包含 if 子句失败的 SQL



我的谷歌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)

Bob Smith 正在输出,因为他有一个 101,Jane Doe 正在输出,因为她没有交易,但 John Doe 不是因为他有交易,而是不是类型 101。 SQL 小提琴会比我更好地解释这一点。 http://sqlfiddle.com/#!6/efc87/1

谢谢!非常感谢。

天哪,这太容易了。 我不应该使用 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'

最新更新