Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果SQL查询中没有结果,则返回0_Sql_Sql Server - Fatal编程技术网

如果SQL查询中没有结果,则返回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。但是

我需要在同一字段中查询两个不同的值,但是如果其中一个没有结果,我需要查询返回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标记。很好,看起来您有一个有效的响应