取连续数中的第一个

数据按日期排正序,若有连续的col2,则取最小日期及col2显示
否则,显示日期和col2
表数据为:
2000/01/02 A
2000/04/01 A
2003/01/01 B
2004/02/03 B
2005/02/02 C
2006/01/01 A

SQL语句的结果为:
2000/01/02 A
2003/01/01 B
2005/02/02 C
2006/01/01 A

[@more@]

【Solved By sonic】

SQL> SELECT * FROM ZTEST;

A B
--------------- ----------
2000-1-2 A
2000-4-1 A
2003-1-1 B
2004-2-3 B
2005-2-2 C
2006-1-1 A

6 rows selected

SQL> SELECT A, B
2 FROM (SELECT T.*,
3 LAG(T.A) OVER(ORDER BY T.A) PA,
4 LAG(T.B) OVER(ORDER BY T.A) PB
5 FROM ZTEST T) WHERE (PA <> A AND PB <> B) OR PA IS NULL
6 /

A B
--------------- ----------
2000-1-2 A
2003-1-1 B
2005-2-2 C
2006-1-1 A

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29867/viewspace-813570/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29867/viewspace-813570/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值