如何用SQL判断数值是否存在于两列的数值范围中
解决方案
假设你的表名为your_table,输入参数为@input_value,可以用以下SQL查询实现需求:
SELECT EXISTS ( SELECT 1 FROM your_table WHERE a = @input_value OR b = @input_value OR (@input_value BETWEEN a AND b) ) AS result;
逻辑说明
a = @input_value:检查输入值是否直接存在于a列b = @input_value:检查输入值是否直接存在于b列@input_value BETWEEN a AND b:检查输入值是否落在a到b的闭区间内(等价于@input_value >= a AND @input_value <= b)EXISTS关键字会在找到任意符合条件的行时返回true,无匹配行时返回false,完全匹配你给出的测试要求:输入1、3、7返回true,输入15返回false
测试验证
对应你的测试场景:
- 输入1:若表中存在
a=1/b=1的行,或某行区间包含1,查询返回true - 输入3:若表中存在区间覆盖3(比如
a=2,b=4)的行,或3存在于a/b列,查询返回true - 输入7:若表中存在区间覆盖7(比如
a=6,b=8)的行,查询返回true - 输入15:无匹配的列值或区间,查询返回
false
内容的提问来源于stack exchange,提问作者Kar B
相关产品推荐
相关产品推荐

