所有Where子句项的SQL结果
在SQL Server 2012中,我需要查询为where子句中的每个元素返回一个值 查询返回所有Where子句项的SQL结果,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,在SQL Server 2012中,我需要查询为where子句中的每个元素返回一个值 查询返回 idCount Squad 1 Civil 3 Electrical 3 Mechanical 我希望输出是 idCount Squad 0 Architectural 1 Civil 3 Electrical 3 Mechanical 您需要一个左连接。在SQL Serve
idCount Squad
1 Civil
3 Electrical
3 Mechanical
我希望输出是
idCount Squad
0 Architectural
1 Civil
3 Electrical
3 Mechanical
您需要一个
左连接
。在SQL Server中,您可以执行以下操作:
select count(p.id), v.squad
from (values ('Mechanical'), ('Civil'), ('Electrical'), ('Architectural')
) v(squad) left join
dbo.Project p
on v.squad = p.squad and
p.id between 60000 and 80000 and
p.fiscalyear = 2018
group by v.squad
order by v.squad asc ;
请注意,所有的
where
条件都需要放在on
子句中,以防止无意中过滤不匹配的值。您需要一个左连接。在SQL Server中,您可以执行以下操作:
select count(p.id), v.squad
from (values ('Mechanical'), ('Civil'), ('Electrical'), ('Architectural')
) v(squad) left join
dbo.Project p
on v.squad = p.squad and
p.id between 60000 and 80000 and
p.fiscalyear = 2018
group by v.squad
order by v.squad asc ;
请注意,所有的where
条件都需要放在on
子句中,以防止无意中过滤不匹配的值