计算包含 EXCEPT 的查询中的行

Counting row from a query that includes an EXCEPT

我有以下查询:

SELECT * 
FROM
    (SELECT 
         SREF, DELIVERYDATE, DATEIDENTIFIED, DCID, SUPN, PONUMBER,
     FROM 
         BNHEAD 
     WHERE 
         (SUPP = 'Sanchez') AND (STAT = '2')

     EXCEPT

     SELECT 
         SREF, DELIVERYDATE, DATEIDENTIFIED, DCID, SUPN, PONUMBER,
     FROM 
         BNHEAD 
     WHERE 
         (SUPP = 'sanchez') 
         AND (STAT = '2') 
         AND ((STI = 'Yes') AND (RESN = 'third party')) 
          OR (FORWARDEDTO = 'STI')) t1
ORDER BY 
    DeliveryDate DESC

如何仅从此查询中获取行计数,如果它为零 return 0 ?我认为它可能需要涉及合并,但我不确定如何。

您只需在外部查询中使用 select count(*)

select count(*)
from (select sref . . .
      . . .
     ) t

select count(*) 总是 return 一行(当没有 group by 时)。如果子查询中没有行,它将 return 0