如果SQL查询中没有结果,则返回0

时间:2019-06-18 14:08:33

标签: sql sql-server

我需要在同一字段中查询2个不同的值,但是如果其中一个没有结果,则需要查询返回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

Test_Code 110将始终具有结果,因此无需在那里返回0。但是,如果Test_Code 112没有结果,我需要查询返回0。

1 个答案:

答案 0 :(得分:2)

您需要列出要返回的所有值,以防表中不存在这些值。然后使用left join

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