XH                 WFDD               HPHM      HPZLMS   WFXWMS             WFSJ                ZP      ZPBH5115000000250723 5115000005 川A9J270 小型汽车 不按规定停车 2008-7-10 20:17:11 <BLOB>   1
5115000000250723 5115000005 川A9J270 小型汽车 不按规定停车 2008-7-10 20:17:11 <BLOB>   2
5115000000250723 5115000005 川A9J270 小型汽车 不按规定停车 2008-7-10 20:17:11 <BLOB>   3
5115000000225316 5115000002 川C36058 小型汽车 不按规定停车 2008-5-16 15:32:10 <BLOB>   1
5115000000225316 5115000002 川C36058 小型汽车 不按规定停车 2008-5-16 15:32:10 <BLOB>   2
5115000000225316 5115000002 川C36058 小型汽车 不按规定停车 2008-5-16 15:32:10 <BLOB>   3
5115000000225318 5115000002 川Q00485 小型汽车 不按规定停车 2008-5-16 15:34:10 <BLOB>   1
5115000000225318 5115000002         川Q00485 小型汽车 不按规定停车 2008-5-16 15:34:10 <BLOB>   2以上为一张违法车辆的数据表,可以命名为Peccancy,数据库使用Oracle。可看出,每列数据除了ZP(照片,blob字段)和ZPBH(照片编号)不一样,其余的序号、违法地点、号牌号码等字段都一致,因为每个违法车辆都包含三个图片。我现在想要整理这些数据,将同一辆车的图片(ZP)合并到一条记录中,每辆车只有一条记录,但含3张图片。对于同一辆车的判定,若XH字段一致,就可以认为这是同辆车的违法记录。最后可达到以下效果:XH    ……  HPZLMS   WFXWMS         WFSJ                  ZP1    ZP2     ZP3   XH    ……  小型汽车 不按规定停车   2008-7-10 20:17:11 <BLOB>  <BLOB>  <BLOB> 请赐教!

解决方案 »

  1.   

    就我的了解,
    因为你的数据类型是blob的,不能简单套用那种 行转列的方法,因为没有针对blob类型数据的聚合函数
    create table new_table as  
    select XH,WFDD,HPHM,HPZLMS,WFXWMS,WFSJ,ZP as ZP_1 from Peccancy where zpbh=1alter table new_table add ZP_2 blob;
    alter table new_table add ZP_3 blob;update new_table set ZP_2=(select zp from Peccancy where zpbh=2),ZP_3=(select zp from
    Peccancy where zpbh=3)