[英]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.