加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

查询以检查sql server中的重叠范围?

发布时间:2021-03-22 13:23:18 所属栏目:编程 来源:网络整理
导读:我有我的桌子 From_Range ToRange 1 999 9000 10000 2000 5000 此刻,当我实行将范畴值插入1000 – 3000时.它应该失败,由于此范畴内的某些值落在现有范畴2000 – 5000之间.怎样搜查输入范畴值是否与现有范畴同等? 办理要领 找到重叠的最简朴要领是这样的: IF

我有我的桌子

From_Range      ToRange
   1                999
   9000             10000
   2000             5000

此刻,当我实行将范畴值插入1000 – 3000时.它应该失败,由于此范畴内的某些值落在现有范畴2000 – 5000之间.怎样搜查输入范畴值是否与现有范畴同等?

办理要领

找到重叠的最简朴要领是这样的:
IF EXISTS (SELECT 1 FROM table WHERE @myValueLo <= ExistingRangeEnd AND @myValueHi >= ExistingRangeStart)
  -- Overlaps
ELSE
  -- Doesn't overlap

假如您将上面的前提与下图中的每个条形举办较量,则可以表现此项:

Existing range:         |-------------------|
Overlaps:       |-------------|       |------------|
                |----------------------------------|
                           |-------------|
Not overlaps:   |-----|                       |----|

在全部重叠的环境下,这两个测试都是正确的:

>现有范畴的开始日期始终在新范畴的竣事日期之前
>现有范畴的竣事日期是在新范畴的开始日期之后

不重叠的那些不能通过该测试中的一个或另一个.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读