我遇到的情况是有一张表格,其中包含订单值以及以下限制和范围
Id Value Range_From Range_To
1 360.0 500 1000
2 1001.0 1001 2000
3 3000.0 1001 2000
我需要输出第3条记录,其中第2条和第3条记录介于1001和2000之间。但是当我使用SQL BETWEEN查询时,我只得到记录2,因为它属于Range_From和Range_To之间的条件。 / p>
示例:
SELECT * FROM Table WHERE Value BETWEEN Range_From AND Range_To;
上面的查询将仅给出第二条记录。如何获得第三条记录也可以满足条件。
我也只需要获取记录作为输出,该记录的值是最高的,它也应该属于Range_From和Range_To
答案 0 :(得分:0)
我想您要在以下查询中进行查询:
SELECT * FROM (
SELECT value, row_number() over(order by value desc) as RN FROM Table WHERE Value BETWEEN Range_From AND Range_To;
) A WHERE RN = 1
您将无法获得第三行,因为它不满足条件。 3000不在1001和2000之间
答案 1 :(得分:0)
尝试一下
SELECT * FROM Table WHERE(值> Range_To);