繁体   English   中英

SQL下界?

[英]SQL Lower Bound?

我想编写一个sql查询,该查询返回所有大于或等于x的值以及不大于x的第一个值。

例如,如果我们有一个包含值1、2、3、4、5的表,并且x为3,则我需要返回2、3、4、5。

我的示例包含均匀间隔的整数这一事实并没有帮助,因为我的实际数据并不那么有效。

这是否有可能?还是我最好只是获取整个表并手动确定我需要哪些行?

SELECT <columns>                   -- you want in the result
FROM tableX
WHERE columnX >=
      ( SELECT MAX(columnX)
        FROM tableX
        WHERE columnX < @x         -- @x is the parameter, 3 in your example
      ) ;

工会是您最好的选择。 将所有大于x的值和小于x的最大值粘贴在一起。 类似于以下内容的东西应该起作用:

SELECT n FROM table WHERE n > $x ORDER BY n DESC
    UNION SELECT n from table WHERE n < $x ORDER By n DESC LIMIT 0,1;
SELECT * FROM MyTable WHERE MyColumn >= 3
UNION
SELECT * FROM MyTable WHERE MyColumn < 3 ORDER BY MyColumn DESC LIMIT 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM