sql在值之间找到

时间:2013-03-26 22:58:53

标签: sql

我有一张这样的表

 A       B
-----------
 1.2     2.3
 2.3     3.9
 3.9     4.34
 4.34    5.786

数据的含义是1.2-5.786是某些表的长度 1.2-2.3有一些属性 2.3-3.9有一些属性等等......但是当你认为它是整个表的长度时(例如这里)1.2 - 5.786。

我想运行一个查询,它会给我两个值之间的行:例如:

A = 1.1 amd B = 4.234

我很难弄清楚如何编写查询,我写的大多数查询都遗漏了一些边缘情况。

3 个答案:

答案 0 :(得分:1)

这似乎运作良好:

select *
from yourtable
where (b > 1.1 and a <= 4.234)

SQL Fiddle Demo

基本上确保b大于下限,a小于或等于上限。根据您所需的结果,您可能需要将b >更改为b >=

答案 1 :(得分:0)

例如,如果您想要A =1.1 amd B = 4.234之间的值,则输出为

  A       B

1.2         2.3

2.3         3.9

然后查询是:

SELECT * from my_table WHERE A>=1.1 AND B<=4.234

但是如果你想要输出

  A       B

1.2         2.3

2.3         3.9

3.9         4.34

然后你想要查询

SELECT * FROM my_table WHERE A >= 1.1 AND A < 4.234 B > 4.234

答案 2 :(得分:0)

这听起来像你想要的

SELECT a, b
  FROM my_table 
  WHERE A >= 1.1 AND B <= 4.234
     OR A >= 1.1 AND A <  4.234 
     OR B >  1.1 AND B <= 4.234

这假设A总是&lt;乙