1

我在计算我的一个使用交叉联接的查询的结果数时遇到问题。

数据收集查询是

SELECT CF.*, C.Type AS Ctype, C.Resp AS Resp 
FROM Campaigns C, CampaignEntities CF 
WHERE C.clientId = '10' AND LOWER(C.Resp) in ('resp1','resp2','resp3')
ORDER BY entityCode DESC 

并正确返回符合条件的行。

但是,当更改它以获得适合的行数时:

SELECT COUNT(*) as RowNr 
FROM Campaigns C, CampaignEntities CF 
WHERE C.clientId = '10' AND LOWER(C.Resp) in ('resp1','resp2','resp3')
ORDER BY entityCode DESC

我得到数以百万计的数字(基本上是在没有应用任何 WHERE 条件的情况下加入的结果)。

知道为什么它会这样,或者我怎么可能得到正确的数字?

4

1 回答 1

0

尝试

SELECT COUNT(C.clientId) as RowNr

代替

SELECT COUNT(*) as RowNr

因为count(*)计算偶数null

于 2012-10-17T09:40:58.917 回答