fenglx332 发表于 2007-05-29 14:20

纵表如何转换横表

如下
id      type    field3
1       A       12
1       B       13
2       A       a1
3       A       n1
3       B       n2

转换为
id      field2       field3
1       12      13
2       a1
3       n1      n2

fenglx332 发表于 2007-05-29 14:27

oracle版
纵表结构:
   fname       ftype             fvalue

   小明         zaocan         10
      小明         zhongcan   20
      小明      wancan          5



转换后的表结构:
   fname       zaocan_value          zhongcan_value       wancan_value

   小明         10                              20                              5            

纵表转横表sql如下:
select Fname, sum(case Ftype when 'zaocan' then Fvalue else 0 end) as zaocan_value,
sum(case Ftype when 'zhongcan' then Fvalue else 0 end) as zhongcan_value,
sum(case Ftype when 'wancan' then Fvalue else 0 end) as wancan_value from case_table group by Fname


但是一个条件fvalue是数值型的,如果不是数值型如何处理

fenglx332 发表于 2007-05-30 12:55

ding

czw1413_cn 发表于 2007-05-30 23:45

fenglx332 发表于 2007-05-31 08:54

我的是要建个view给人用,所以才这么费事
页: [1]
查看完整版本: 纵表如何转换横表