Sql server 如何查询0行的计数
我的查询是获取总行数以及列数。必须是临时表的示例表如下: 温度(a1、a2) 我需要查询a1、a2和总行数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,它们可以返回“零”: 我
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.管理。?