如果SQL查询中没有结果,则返回0
我需要在同一字段中查询两个不同的值,但是如果其中一个没有结果,我需要查询返回0如果SQL查询中没有结果,则返回0,sql,sql-server,Sql,Sql Server,我需要在同一字段中查询两个不同的值,但是如果其中一个没有结果,我需要查询返回0 SELECT Test_Code, COUNT(*) as Count FROM Test_Table with (nolock) WHERE Start_Date >= dateadd(mi,-10,getdate()) AND (Test_Code='110' OR Test_Code='112') GROUP BY Test_Code 测试代码110将始终有结果,因此不需要在那里返回0。但是
SELECT Test_Code, COUNT(*) as Count
FROM Test_Table with (nolock)
WHERE Start_Date >= dateadd(mi,-10,getdate()) AND
(Test_Code='110' OR Test_Code='112')
GROUP BY Test_Code
测试代码110将始终有结果,因此不需要在那里返回0。但是如果Test_Code 112没有结果,我需要查询返回0。您需要一个包含所有要返回的值的列表,以防它们在表中不存在。然后使用左联接:
SELECT v.Test_Code, COUNT(tt.Test_code) as Count
FROM (VALUES ('110'), ('112')) v(test_code) LEFT JOIN
Test_Table tt
ON tt.Test_Code = v.Test_Code AND
tt.Start_Date >= dateadd(minute, -10, getdate())
GROUP BY v.Test_Code
你在用什么数据库管理系统?@Slanderman。我根据语法添加了SQL Server标记。很好,看起来您有一个有效的响应