Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 server 如何查询0行的计数_Sql Server - Fatal编程技术网

Sql server 如何查询0行的计数

Sql server 如何查询0行的计数,sql-server,Sql Server,我的查询是获取总行数以及列数。必须是临时表的示例表如下: 温度(a1、a2) 我需要查询a1、a2和总行数 SELECT COUNT(*) as TotalRow, a1, a2 from #temp group by a1,a2 对于行>=1的表,查询工作正常。但是,对于某些特殊情况,此表的行数为零。在这种情况下,TotalRow不会返回值(它应该是零)。如何使该查询适用于包括零行在内的所有情况?谢谢。我想看看COALESCE或ISNULL函数,如果为null,它们可以返回“零”: 我

我的查询是获取总行数以及列数。必须是临时表的示例表如下:

温度(a1、a2) 我需要查询a1、a2和总行数

SELECT COUNT(*) as TotalRow, a1, a2 from #temp group by a1,a2

对于行>=1的表,查询工作正常。但是,对于某些特殊情况,此表的行数为零。在这种情况下,
TotalRow
不会返回值(它应该是零)。如何使该查询适用于包括零行在内的所有情况?谢谢。

我想看看COALESCE或ISNULL函数,如果为null,它们可以返回“零”:


我想通过两个问题来解决这个问题:

IF (SELECT COUNT(*) from #temp > 0)
BEGIN
    SELECT COUNT(*) as TotalRow, a1, a2 from #temp group by a1,a2
END
ELSE
BEGIN
    SELECT 0 as TotalRow, NULL as a1, NULL as a2
END

如果您试图获取
a1
a2
的所有组合,即使没有行,也可以尝试以下操作:

select a1.a1, a2.a2, count(t.a1) as TotalRow
from (select distinct a1 from #temp) a1 cross join
     (select distinct a2 from #temp) a2 left outer join
     #temp t
     on a1.a1 = t.a1 and a2.a2 = t.a2
group by a1, a2;

若表中的行为零,那个么您想在a1和a2中输入哪个值?@JoeTaras我想
NULL
s会这样做。谢谢您的回复。我需要TotalRow为零,其余为空。谢谢你的回答。该查询将在Crystal报告中使用。正如您所知,Crystal report仅在使用存储过程进行查询时使用第一个查询。如果totalrow的值为零,而the@user1816353:您不能调用SP,其结果由C.R.管理。?