【发布时间】:2017-04-21 10:06:41
【问题描述】:
我有以下 SQL 服务器表设置
table1.Id
table1.Name
table2.Id
table2.Type
table1 和 table2 之间存在一对多的关系,例如,table2 中可以有许多记录链接到 table1 中的单个记录。
我现在有以下数据集:
table1
Id Name
1 Name1
2 Name2
table2
Id Type
1 1
1 2
2 1
我现在运行以下查询:
SELECT *
FROM table1 t
LEFT JOIN table2 l
ON t.Id = l.Id
WHERE l.Type = 2
此查询将返回以下内容:
table1 table2
Id Name Id Type
1 Name1 1 2
我实际上想要实现的是一个返回以下内容的查询:
table1 table2
Id Name Id Type
1 Name1 1 2
2 Name2 1 DEFAULTVALUE
我在哪里声明 DEFAULTVALUE。
我知道如果我删除 WHERE 子句,查询将返回 3 行,但我想排除所有类型不为 2 的记录,如果不存在记录,我想添加一个默认条目。
我认为我可能需要为此使用用例,但无法确切了解如何执行此操作。
我希望我的问题很清楚?
【问题讨论】:
标签: sql-server join case