我的示例代码是这样的:
select count(*) cnt
from
(
select title,person,first_value,second_value,third_value
from
(
select a.title,b.person,b.id_meta b_meta,b.value
from tbl_one a
inner join tbl_param b on a.param=b.id
where b.id in ('first_value','second_value','third_value')
) x
pivot
(
sum(value)
for param in ([first_value],[second_value],[third_value])
) pvt
) r
inner join tbl_two c on r.person=c.person
inner join tbl_person p on r.person=p.id
group by p.title,r.first_value,r.second_value,r.third_value
这段代码没有计数,我从这段代码中取出了一个空字符串,当我计算这个查询时,我想得到 0 但它只显示一个空字符串。为什么它给我空而不是 0?
COUNT()
永远不会返回NULL
,也不会返回字符串值。所以,你的问题有点可疑。
我认为问题略有不同——您的查询根本不返回任何行。然后,当您查看COUNT()
它时,它会返回为NULL
(特别是当您将它用作标量子查询时),因为该行不存在。
当您有GROUP BY
条款时,可能会发生这种情况。如果过滤掉所有行,则不返回任何行。
我建议您删除该GROUP BY
子句并计算返回的行数。我怀疑值是0
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句