17,089
社区成员
发帖
与我相关
我的任务
分享
SELECT T1.ID, T1.DATE
FROM (SELECT ID, DATE, ROWNUM R FROM TABLE_NAME ORDER BY ID) T1,--以id排序
(SELECT ID, DATE, ROWNUM R FROM TABLE_NAME ORDER BY DATE) T2--以date排序
WHERE T1.R = T2.R--按照编号连接
AND T1.ID <> T2.ID --值不相等的
;WITH CTE(ID,DATE) AS(
SELECT 1,'2013/05/07' UNION ALL
SELECT 2 ,'2013/08/06' UNION ALL
SELECT 3 , '2013/06/12' UNION ALL
SELECT 4 , '2013/12/01' UNION ALL
SELECT 5,'2014/01/22'
)
SELECT * FROM CTE AS A
WHERE EXISTS(SELECT 1 FROM CTE AS B WHERE A.DATE<B.DATE AND A.ID>B.ID)
SELECT ID,DATE FROM(
select id,DATE,
lag(DATE,1,DATE)OVER (ORDER BY ID) as PREDATE
lead(DATE,1,DATE)OVER (ORDER BY ID) as NEXTDATE
from T
) WHERE PREDATE>DATE OR NEXTDATE<DATE