请教一个超难的SQL
有一个表,它有name、sex、office、jg、dz、yb、xl七个字段,如图1:想变成如下图2:这样的SQL要如何写?

解决方案 »

  1.   

    两张图片的地址分别为:http://file.itpub.net/f/5f45ebfc65f060a1ba961c69e3690dda/4a727691/day_090731/20090731_28a863423b68c38137e1Fa0lDUh5PDUv.jpg/p/未标题-1.jpghttp://file.itpub.net/f/2f4769268d604f425a2ec347a1ac33a7/4a727691/day_090731/20090731_abb862757f4a3e2d8380EbJunYDq3ujk.jpg/p/未标题-2.jpg
      

  2.   

    那个图片只有你才能访问吧
    我们没有itpub的账号,可能还得是你本人的账号登陆,看不了
    上传到别的空间,或者csdn的相册试试
      

  3.   


    点了,打开的是itpub的主页,没图
      

  4.   

    用sql查出表结构然后贴上来不就完了吗
      

  5.   

    这两张表是这样的:
    1、原始表(上为字段名,下为数据):
    name   sex   office   jg      dz     yb       xl
    张三    男     办公室    山西省   北京    000001   否现在要写一个SQL,前提数据库是用Oracle817的,让这个原始表转化为下表:2、转化后的表(第一行为字段名,下为数据):
    A1      A2      A3      A4      A5       A6
    name    张三     sex     男       office   办公室
    jg      山西省   dz      北京     yb       000001
    xl      否
      

  6.   

    Select t4.A1, t4.A2, t4.A3, t4.A4, t4.A5, t4.A6 From
    (
    Select t1.Rowid rid, 1 sort_no, 'name' A1, Name A2, 'sex' A3, sex A4, 'office' A5, office A6
    From tab_name t1
    Union All
    Select t2.Rowid rid, 2 sort_no, 'jg'A1, jg A2, 'dz' A3, dz A4, 'yb' A5, yb A6
    From tab_name t2
    Union All
    Select t3.Rowid rid, 3 sort_no, 'xl' A1, xl A2, Null A3, Null A4, Null A5, Null A6
    From tab_name t3
    ) t4  Order By t4.rid, t4.sort_no Asc;
      

  7.   

    Union All是可以实现,如果字段很多的话那怎么办?难道要一组一组的用Union All关联吗?还有没有更好的方法来解决?
      

  8.   

    我觉得如果不用oracle内部函数的话,最好用存储过程实现,的确有点复杂,如果第一个表的字段增加怎么办?第一个表的数据不全怎么办?这些我觉得你应该搞清楚。
      

  9.   


     select a1,a2,a3,a4,a5,a6 from(
     select 'name' a1,name a2,'sex' a3,sex a4,'office' a5,office a6,row_number()over(order by rownum)+0.1 rn from test_a
     union all
     select 'jg',jg,'dz',dz,'yb',yb,row_number()over(order by rownum)+0.2  from test_a
     union all
     select 'xl',xl,null,null,null,null,row_number()over(order by rownum)+0.3 from test_a)
     order by rnA1 A2 A3 A4 A5 A6
    name 张三 sex 男 office 办公室
    jg 山西省 dz 北京 yb 000001
    xl 否
    name 李四 sex 男 office 物业公司
    jg 广东省 dz 桂林 yb 000002
    xl 是
    name 王文 sex 男 office 汽车公司
    jg 湖北省 dz 无锡 yb 000003
    xl 否
    name 何兴建 sex 男 office 学校
    jg 江西省 dz 北京 yb 000004
    xl 否
      

  10.   

    楼主你能否说出你这样做的原因?我见过无数人为了一个莫名其妙的SQL实现而烦恼,原因却在于数据库建模的不合理