日期:2014-05-17  浏览次数:20926 次

这个函数是什么意思 为什么里面还要有1 这是什么意思SUM(CASE WHEN FLDEX1 = '2' THEN 1 END )
  
  SELECT '住宅楼' AS 楼宇类别2,
  SUM(CASE WHEN FLDEX1 = '1' THEN 1 END ) AS 楼宇类别2_统计
  FROM TAR_STATION NBV
  union all
  SELECT '公众商住楼',
  SUM(CASE WHEN FLDEX1 = '2' THEN 1 END )
  FROM TAR_STATION NBV
  union all
  SELECT '企业商住楼',
  SUM(CASE WHEN FLDEX1 = '3' THEN 1 END )
  FROM TAR_STATION NBV
  union all
   SELECT '商务楼宇',
  SUM(CASE WHEN FLDEX1 = '4' THEN 1 END )
  FROM TAR_STATION NBV
  union all
  SELECT '客户自用楼',
  SUM(CASE WHEN FLDEX1 = '5' THEN 1 END )
  FROM TAR_STATION NBV

------解决方案--------------------
他其实就是想统计出各种类别的总数嘛,
SUM(CASE WHEN FLDEX68 = '3' THEN 1 END ) 对于FLDEX68 = '3'的记录,查询出的结果是1,最后sum下求和,就是求出所有FLDEX68 = '3'的,不过这样有意思么。。。。
------解决方案--------------------
引用:
他其实就是想统计出各种类别的总数嘛,
SUM(CASE WHEN FLDEX68 = '3' THEN 1 END ) 对于FLDEX68 = '3'的记录,查询出的结果是1,最后sum下求和,就是求出所有FLDEX68 = '3'的,不过这样有意思么。。。。

直接这样方便多了

  select decode(FLDEX1,
                '1',
                住宅楼,
                '2',
                '公众商住楼',
                '3',
                '企业商住楼',
                '4',
                '商务楼宇',
                '5',
                '客户自用楼') as 楼宇类别2,
         count(*)
    from TAR_STATION
   where FLDEX1 in ('1', '2', '3', '4', '5')
   group by decode(FLDEX1,
                   '1',
                   住宅楼,
                   '2',
                   '公众商住楼',
                   '3',
  &n