1

我有一张这样的桌子

AB
------------
 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 和 B = 4.234

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

4

3 回答 3

1

这似乎运作良好:

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

SQL 小提琴演示

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

于 2013-03-26T23:28:20.927 回答
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
于 2013-03-26T23:04:53.543 回答
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 总是 < B

于 2013-03-26T23:32:19.063 回答