我需要在同一字段中查询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。
答案 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