Sql server 2008 SQL中的交叉表(透视)查询

Sql server 2008 SQL中的交叉表(透视)查询,sql-server-2008,pivot-table,Sql Server 2008,Pivot Table,我正在SQL中使用pivot查询,如下所示: SELECT classification, [BSL] AS BSL, [AQ] AS AQ, [KYN] AS KYN, ([BSL] + [AQ] + [KYN]) AS CR_TTL FROM ( SELECT classification, Shed FROM PunctualityMain WHERE Date >= '4/1/2012' AND Date <= '6/30/201

我正在SQL中使用pivot查询,如下所示:

   SELECT  classification, [BSL] AS BSL, [AQ] AS AQ, [KYN] AS KYN,  ([BSL] + [AQ] + 
   [KYN]) AS CR_TTL
   FROM 
  ( 
   SELECT classification, Shed 
   FROM PunctualityMain WHERE Date >= '4/1/2012' AND Date <= '6/30/2012'   
  ) x
  PIVOT 
 ( 
  COUNT(Shed) 
  FOR Shed IN ([BSL],  [AQ],  [KYN]))  p  ">

结果我在空单元格中得到0,是否可以在结果页中显示空而不是0?

最简单的解决方案是使用NULLIF快捷方式,如下所示:

SELECT  classification
, NULLIF([BSL],0) AS BSL
, NULLIF([AQ],0) AS AQ
, NULLIF([KYN],0) AS KYN
, NULLIF([BSL] + [AQ] + [KYN],0) AS CR_TTL 
       FROM  
      (  
       SELECT classification, Shed  
       FROM PunctualityMain WHERE Date >= '4/1/2012' AND Date <= '6/30/2012'    
      ) x 
      PIVOT  
     (  
      COUNT(Shed)  
      FOR Shed IN ([BSL],  [AQ],  [KYN]))  p