举个例吧,ID Value2 40
3 50
4 60
5 70
6 80
查小于原价格X最大值 如果有,就取出来。如果没有匹配的就取出 大于原价格X的最小值。取出来例:原价格x为 55 则可以取出 50这个记录。 //取出小于X的最后一条记录(最大值)
如果 原价格x为 30 则要求取出40这个记录。 //取出第一个大于X的记录(最小值)SQL语句要怎么写。 是不是没办法用SQL单纯实现?谢谢回答。
3 50
4 60
5 70
6 80
查小于原价格X最大值 如果有,就取出来。如果没有匹配的就取出 大于原价格X的最小值。取出来例:原价格x为 55 则可以取出 50这个记录。 //取出小于X的最后一条记录(最大值)
如果 原价格x为 30 则要求取出40这个记录。 //取出第一个大于X的记录(最小值)SQL语句要怎么写。 是不是没办法用SQL单纯实现?谢谢回答。
解决方案 »
- mysql最近执行命令时总是出现问题?
- 如何高效查出最新和点击次数最多的各2条数据?
- mysql 非常难的问题,有人知道吗?
- 请问一个服务器可以最多可以建多少个mysql数据库?在线等待!!
- 如何将sqlsever的备份文件,还原到别的机子上,在线等待ing
- 关于mysql数据库中数据的存放位置...如何设置??
- wo希望直接取结果集的第n条记录,MS SQL如何写?
- 这个sql该怎么写?
- 由于后台程序密码忘记了,并且这后台绑定的mysql数据库。我问他说后台程序密码忘记了,不是可以在代码里把后台程序密码重置么,对方说不行,只能进行mysql数据库
- mysql中关于check约束撤销的问题
- 查询语句求解
- 排行榜的问题,如果设置榜单排名?
mysql> use c1
Database changed
mysql> select * from t1;
+----+---------+
| id | value |
+----+---------+
| 1 | 30.0000 |
| 2 | 40.0000 |
| 3 | 50.0000 |
| 4 | 60.0000 |
| 5 | 70.0000 |
+----+---------+
5 rows in set (0.00 sec)mysql> select * from t1 order by abs(value-55) limit 1;
+----+---------+
| id | value |
+----+---------+
| 3 | 50.0000 |
+----+---------+
1 row in set (0.00 sec)mysql> select * from t1 order by abs(value-20) limit 1;
+----+---------+
| id | value |
+----+---------+
| 1 | 30.0000 |
+----+---------+
1 row in set (0.00 sec)mysql>