码迷,mamicode.com
首页 > 数据库 > 详细

sql实现纵表变横表

时间:2018-07-31 11:18:06      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:大量数据   数据量   end   sel   大量   多行   大数据量   bsp   font   

网上所有的纵横表转换都是千篇一律的,参考价值都不大,而且只适合那种数据量固定的学生成绩表的横纵转化,但是当真正遇到大数据量的批量转换的时候是行不通的,下面介绍一种相对灵活的大量数据的横纵表转换:

表结构:

 技术分享图片

 

如上图所示,其中index_id中以0结尾的表示的是服务名,以1结尾的表示设备rac名称,2结尾的表示的是设备状态。

下面我们需要将一组0,1,2结尾的分别展示成以服务名,设备rac名称,设备状态为表头的一行数据,多组0,1,2结尾的展示成多行数据。

Sql执行如下:

select index_id/10 as nmm,   max(case mod(index_id,10)  when 0 then mon_indexdata.value else ‘‘ end) cluster_name,

max(case mod(index_id,10) when 1 then  mon_indexdata.value else ‘‘ end) sys_name,

max(case mod(index_id,10) when 2 then mon_indexdata.value else ‘‘ end) state

from mon_indexdata where uid = 110100224 and index_id>3010000 group by index_id/10

主要规律是通过对10取余和以inde_id的倒数第二个数字为组进行分组即可。

sql实现纵表变横表

标签:大量数据   数据量   end   sel   大量   多行   大数据量   bsp   font   

原文地址:https://www.cnblogs.com/b-code/p/9394041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!