数据库一张表中 有 s_position 和 e_position 两个字段,, 分别用来存储 其实位置和终止位置,现在需要查询出表中位置存在重叠部分的数据,比如:
ID s_position e_position
1 0 15
2 7 29
3 31 40
4 45 50数据之间只要有重复就能找出来求高手指点一下
ID s_position e_position
1 0 15
2 7 29
3 31 40
4 45 50数据之间只要有重复就能找出来求高手指点一下
调试欢乐多
FROM (SELECT ID,
POSITION,
LEAD(ID, 1, 0) OVER(ORDER BY POSITION) AS NEXTID
FROM (SELECT ID, S_POSITION AS POSITION
FROM TABLE
UNION
SELECT ID, E_POSITION AS POSITION
FROM TABLE))
WHERE ID > NEXTID
AND NEXTID <> 0