【问题标题】:Cross tab (Pivot) query in SQLSQL 中的交叉表(数据透视)查询
【发布时间】:2012-06-24 12:43:04
【问题描述】:

我在 SQL 中使用如下透视查询:

   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  ">

结果我在 null 单元格中得到 0,是否可以在结果页面中显示 null 代替 0?

【问题讨论】:

    标签: sql-server-2008 pivot-table


    【解决方案1】:

    最简单的解决方案是使用 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  
    

    【讨论】:

      猜你喜欢
      • 2012-04-07
      • 2011-04-03
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多