有一视图:VW_TAB1 字段有:开始日期、结束日期、column1、column2、column3、column4 共有六个字段column字段分别为每半小时更新过来的数据列,现在想把查询出来的数据列转换成行,把列转换成行!请高手帮忙……!

解决方案 »

  1.   

    如果你的数据库是11g的,可以使用pivot进行转换
    如果是11g以前的,可以使用sum(decode(...进行转换
      

  2.   


    select 开始日期,结束日期,column1 from t where 条件
    union all
    select 开始日期,结束日期,column2 from t where 条件
    union all
    select 开始日期,结束日期,column3 from t where 条件
    union all
    select 开始日期,结束日期,column4 from t where 条件;
      

  3.   

    我猜楼主想要的结果是
            日期1   日期2 ....
    column1   1      2
    column2
    column3
    column4如果是这样,要看你的列数固定不固定.
    如果不固定可能要动态sql了
    还是要用sum(decode...
      

  4.   

     比如我的表VW_TAB1 查询出的字段数据为:startdate,         enddate,           c1,  c2,  c3,    c4
    11-11-21 10:11:21  11-11-21 10:41:21  11   10   1121   1001
    11-11-21 09:41:21  11-11-21 10:11:21  22   20   1122   1002
    11-11-21 09:11:21  11-11-21 09:41:21  33   30   1123   1003
    11-11-21 08:41:21  11-11-21 09:11:21  44   40   1124   1004列转行后:startdate:11-11-21 10:11:21
    enddate:  11-11-21 10:41:21
    c1:        11
    c2:        10
    c3:        1121
    c4:        1001
    startdate:11-11-21 09:41:21
    enddate:   11-11-21 10:11:21   
    c1:        22
    c2:        20
    c3:        1122
    c4:        1002
    startdate:11-11-21 09:11:21
    enddate:   11-11-21 09:41:21
    c1:        33
    c2:        30
    c3:        1123
    c4:        1003
    startdate:11-11-21 08:41:21
    enddate:   11-11-21 09:41:21
    c1:        44
    c2:        40
    c3:        1124
    c4:        1004转成这样后就可以了!
    望指教……