1、mysql中沒有lag和lead函數,由于Oracle使用慣了,沒有這函數有些不方便。因而揣摩能不能實現。
2、如果用函數,肯定可以實現。但如果不用函數,是不是能夠實現呢?經過實驗,發現可以到達目的。
對lag函數,可以這么寫
select @lagfield,@lagfiled:=targField,t.* from table t ,(select @lagfield:='') r
3、其中targField是你想要在下1行顯現的字段,根據字段是字符還是數字,最后的select 應當不同,
1)如果是數字,則應當(select @lagfield:=0) r,
2)如果字符,則就是例子中的
4、對lead,正好可以相反,可以4步走
1)生成rownum
2)根據rownum倒序
3)依照lag方式實現
4)在依照rownum正序