1
FIELD_1 | DATE
X | 2010-01-01
X | 2010-02-01
X | 2010-03-01
Y | 2010-04-01
Y | 2010-05-01
Y | 2010-05-01
我想SELECT返回以下內容:(一發生變化FIELD_1) Y | 2010-04-01
有沒有簡單的方法來做到這一點?
FIELD_1 | DATE
X | 2010-01-01
X | 2010-02-01
X | 2010-03-01
Y | 2010-04-01
Y | 2010-05-01
Y | 2010-05-01
我想SELECT返回以下內容:(一發生變化FIELD_1) Y | 2010-04-01
有沒有簡單的方法來做到這一點?
Writen爲MSSQL:
declare @t table(field varchar(20), date date)
insert @t values('X', '2010-01-01')
insert @t values('X', '2010-01-02')
insert @t values('X', '2010-01-03')
insert @t values('Y', '2010-01-04')
insert @t values('Y', '2010-01-05')
insert @t values('Y', '2010-01-06')
select b.* from @t a join @t b on dateadd(day, 1, a.date) = b.date
and a.field <> b.field
結果:
field date
-------------------- ----------
Y 2010-01-04
還應針對Sybase工作,如果你與你的表格代替@t而忽略了測試數據