`

横表变纵表

阅读更多

横表变纵表列子1

横表:



纵表:




中介表:






with tb1 as
 (select '张三' fname,
         'A张三' f1,
         'B张三' f2,
         'C张三' f3,
         'D张三' f4
    from dual
  union all
  select '王五' fname,
         'A王五' f1,
         'B王五' f2,
         'C王五' f3,
         'D王五' f4
    from dual
  union all
  select '李四' fname,
         'A李四' f1,
         'B李四' f2,
         'C李四' f3,
         'D李四' f4
    from dual),

tb2 as
 (select 'F1' f from dual
      union all
  select 'F2' f from dual 
      union all
  select 'F3' f from dual  
     union all
  select 'F4' f from dual  
 )

select tb1.fname,
       tb2.f,
       decode(tb2.f , 'F1', tb1.f1, 'F2', f2, 'F3', f3, 'F4', f4) f_val
  from tb1, tb2
 order by tb1.fname,tb2.f




横表变纵表列子2:
with tb1 as
 (select '张三' fname,
         '201007' month_id,
         'A张三' f1,
         'B张三' f2,
         'C张三' f3,
         'D张三' f4
    from dual
  union all
  select '王五' fname,
         '201007' month_id,
         'A王五' f1,
         'B王五' f2,
         'C王五' f3,
         'D王五' f4
    from dual
  union all
  select '李四' fname,
         '201007' month_id,
         'A李四' f1,
         'B李四' f2,
         'C李四' f3,
         'D李四' f4
    from dual),
tb2 as
 (select rownum day_id
    from dual
  connect by rownum <=
             to_number(to_char(last_day(to_date('201007', 'YYYYMM')), 'dd')))

select tb1.fname,
       tb1.month_id,
       tb2.day_id,
       decode(mod(tb2.day_id, 4) + 1, 1, tb1.f1, 2, f2, 3, f3, 4, f4) f_val
  from tb1, tb2
 group by tb1.fname,
          tb1.month_id,
          tb2.day_id,
          decode(mod(tb2.day_id, 4) + 1, 1, tb1.f1, 2, f2, 3, f3, 4, f4)
 order by tb1.fname
  • 大小: 17.5 KB
  • 大小: 29.7 KB
  • 大小: 5.3 KB
分享到:
评论

相关推荐

    SqlServer mssql 交叉查询,横表变纵表

    sql server 交叉查询, 查询结果交叉表,横表变纵表

    Oracle 数据显示 横表转纵表

    横表转纵表亦可用与decode意义相似的case语句实现,原理同该语句,这里不再过多描述。

    数据库横表、纵表

    纵表在使用时由于行数过多,统计用户数或对用户分档时需要进行GROUP BY操作,性能低下,且操作不便,为提高性能,通常对纵表进行汇总,形成横表。  2.数据挖掘时用到的宽表一般也要求是横表结构。  3.纵表对于...

    工资表的设计方案及其纵表变横表的方法

    介绍了工资表设计方案与横纵表之间的转化

    SQL Server纵表与横表相互转换的方法

    主要介绍了SQL Server纵表与横表相互转换的方法,本文通过图文并茂的形式给大家介绍,介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧

    code_R语言_纵向数据_

    采用R语言编程,解决纵向数据线性混效应模型中的参数估计、等问题

    c++,坦克大战,带颜色

    区别:纵坐标y两值一致,假横坐标x值与真正coord横坐标(真坐标)关系是 x * 2 = coord 横坐标 coord横坐标既指GoTo函数中的x参数,因为本程序游戏界面以一个■长度为基本单位, 可以说涉及的coord横坐标全是...

    龙潭互通立交设计方案论述.doc

    主要设计参数见下表: 表2 纵断面设计参数 2.4 超高加宽设计 主线和各匝道中,行车道和硬路肩设置相同的横坡,无超高情况下行车道横坡为2%, 土路肩横坡为4%。主线和A匝道超高方式绕中央分隔带边缘旋转,其余匝道...

    煤炭地址问题解析解答详情

    答:褶曲的基本形式只有背斜和向斜,但在自然界中背斜和向斜的形态又是多种多样,根据它们在横剖面、纵剖面和平面上的形态特征,可以进一步分类,褶曲在横剖面上的形态分类1)直立褶曲2)倾斜褶曲3)倒转褶曲褶曲在...

    机器人算法汇总.pdf

    根据不同⽅向的⾏进代价,可以直观的⽤⼀个柱状图表⽰:横坐标为0-360度的⽅向,纵坐标是该⾓度下的⾏进代价;柱状 图越⾼,表⽰向该⽅向⾏进的代价越⾼,也表明越不可能通过 注:按低区域柱状图⽽⾏⾛路线可能最终...

    常用数据分析方法.docx

    数据分析常用的图表方法有: 柏拉图(排列图) 排列图是分析和寻找 响质量主原因素的一种工具,其形式用双直角坐标图,左边纵坐标表示频数(如件数金额等),右边纵坐标表示频率(如百分比表示)。分折线表示累积频率...

    操盘手培训教程.doc

    K线画法 以交易时间为横坐标,价格为纵坐标将每日的K线连续绘出即成K线图 K线图中的柱体有阳线和阴线之分。一般用红色柱体表示阳线,绿色柱体表示阴线。 如果柱体表示的时间段内的收盘价高于开盘价,即股价上涨,则...

    易语言 茶凉专用模块

    参数 右下顶点_X, 整数型, 可空, 截取图片范围的右下角横坐标,小于左上顶点_X则为最大值-1 默认为最大值 .参数 右下顶点_Y, 整数型, 可空, 截取图片范围的右下角纵坐标,小于左上顶点_Y则为最大值-1 默认为最大值 ....

    铝热反应(知识延伸)

    解析:根据铝热反应2Al+Fe2O3 A12O3+2Fe铝热反应得到熔融态的铁,根据表中熔沸点数据,此温度下铝也为熔融态,二者融合在一起形成铁铝合金;要验证熔融物中含 有铝可以利用铝的两性来解决, 2Al+2OH—+2H2O=2A1O2—+...

Global site tag (gtag.js) - Google Analytics