没有oracle中的偏移函数,如何实现mysql中的字段的偏移呢?如图,reader2和reader3中的上面个null去掉。即让reader2的id为1的数据为20010108,id为5的行的数据为20070101。reader3也类似,即所有数据第一行开始对齐。

解决方案 »

  1.   

    最好将显示这个结果的sql贴出来
      

  2.   

    原始数据如下:,我通过新建临时表temp,然后从原始表中插入数据得到temp,就是开贴图,然后如何对齐比较头疼。其实我已经通过外连接的方式在oracle中实现另外对齐:,或者在oracle中用lag over方式实现。但是感觉不是很好,想要改进。
    原始表结构为:
    create table b_record(readerID int,bookID int,browstime varchar(30));以下是创建临时表的代码:
    create table temp(reader1 varchar(20),reader2 varchar(20),reader3 varchar(20));insert into temp(reader1) select browstime from b_record where readerID=1;
    insert into temp(reader2) select browstime from b_record where readerID=2;
    insert into temp(reader3) select browstime from b_record where readerID=3;以下为对齐代码
    select a.reader1,b.reader2,c.reader3 from
     temp a right join temp b on a.rowid=b.rowid-3 
     left join temp c on c.rowid=b.rowid+5
     where b.rowid>=4 and b.rowid<=8;我想知道mysql中有没有好的实现方式