您的位置:首页 > 数据库

常用SQL整理 - 查找存在交集的数据

2016-02-24 15:32 417 查看
DECLARE @tbl TABLE
(
ID INT ,
FROM_VALUE INT ,
TO_VALUE INT
)

INSERT  @tbl
( ID, FROM_VALUE, TO_VALUE )
VALUES  ( 1, 10, -- A - int
30  -- B - int
)

INSERT  @tbl
( ID, FROM_VALUE, TO_VALUE )
VALUES  ( 2, 20, -- A - int
40  -- B - int
)

INSERT  @tbl
( ID, FROM_VALUE, TO_VALUE )
VALUES  ( 3, 41, -- A - int
60  -- B - int
)

SELECT
DISTINCT
R.*
FROM    @tbl R
INNER JOIN @tbl I ON ( ( R.FROM_VALUE <= I.TO_VALUE
AND I.FROM_VALUE <= R.TO_VALUE
)
AND NOT ( R.FROM_VALUE = I.FROM_VALUE
AND I.TO_VALUE = R.TO_VALUE
)
)
ORDER BY ID
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: