免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3257 | 回复: 4
打印 上一主题 下一主题

纵表如何转换横表 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 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

论坛徽章:
0
2 [报告]
发表于 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是数值型的,如果不是数值型如何处理

论坛徽章:
0
3 [报告]
发表于 2007-05-30 12:55 |只看该作者
ding

论坛徽章:
0
4 [报告]
发表于 2007-05-30 23:45 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2007-05-31 08:54 |只看该作者
我的是要建个view给人用,所以才这么费事
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP