欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请教这个sql能实现吗? 又该怎么写

更新时间: 2014-01-05 02:12:36 责任编辑: Author_N1

 

请问这个SQL能实现吗? 又该如何写?
CREATE TABLE TEST
   ( DT DATE, 
NUM VARCHAR2(20 BYTE), 
FLAG VARCHAR2(20 BYTE)
   )
insert into test values(to_date('2013-10-30 10:00:00','yyyy-mm-dd hh24:mi:ss'),'1111111','A')
insert into test values(to_date('2013-10-30 11:00:00','yyyy-mm-dd hh24:mi:ss'),'1111111','A')
insert into test values(to_date('2013-10-30 11:10:00','yyyy-mm-dd hh24:mi:ss'),'2222222','A')  
insert into test values(to_date('2013-10-30 12:00:00','yyyy-mm-dd hh24:mi:ss'),'1111111','A')

请问如何得到发生变化时记录原NUM,我想要的结果是两条记录
DT       NUM FLAG  OLD NUM
2013-10-30 11:10:00    2222222    A    1111111
2013-10-30 12:00:00    1111111    A    2222222

--参考方法--
引用:
2#的方法是对的,但是我只需要num和last_num不同的记录,应该加什么条件?

嵌套一个子查询就可以了
select * from (
    Select  T.*, Lag(Num) Over (Partition By Flag Order By Dt Asc) As Last_Num
    from test t)
where  where num!=Last_Num
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:36
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6984/
本文WWW.DOC100.NET DOC100.NET版权所有。