返回值的SQL视图,如果未找到则返回null

时间:2013-09-22 00:03:42

标签: mysql sql sql-server

我不认为这可以做到,但因为我是一个使用MSSM工作室的SQL菜单的新手,我想我还是会问。

我有2个表并使用视图查看匹配的记录。表2有时没有匹配的记录,所以他们自然不会在我的视图中显示。例如:

A-1
B-2
C-3

我真正需要的是视图向我展示表2中匹配记录的内容,但同时告诉我其他人没有找到任何内容:

A-1
B-2
C-3
D-"Not Found"
E-"Not Found"

通过这种方式,我可以完全根据需要准备我的视图,但可以查看表2中未找到的视图。希望有人可以帮我找到完成此操作的方法。提前谢谢。

-------- ---------- EDIT

好的,所以第一个表(GoogleBusinessData)拥有。其他东西,客户网站。第二个表(EmailTable)包含许多电子邮件地址。常见链接是BusWebsite列。

SELECT dbo.GoogleBusinessData.BusWebsite, dbo.EmailTable.EmailNumberOfEmails
FROM   dbo.GoogleBusinessData 
INNER JOIN dbo.EmailTable ON dbo.GoogleBusinessData.BusWebsite = dbo.EmailTable.EmailWebsite

这里的问题是它会列出网站匹配时出现的电子邮件,但我希望能够从dbo.GoogleBusinessData.BusWebsite列出我的所有数据,如果它与EmailTable.EmailWebsite匹配,那么它会在dbo.EmailTable.EmailNumberOfEmails中显示该数字,但如果找不到,则显示“Not Found”。

1 个答案:

答案 0 :(得分:7)

在Table1和Table2之间使用LEFT JOIN(也称为LEFT OUTER JOIN

并使用

CASE WHEN Table2.Key IS NULL THEN 'Not Found' ELSE Table2.RelatedColumn END