Mysql 获取值上方和下方的行或最近的行

Mysql 获取值上方和下方的行或最近的行,mysql,sql,Mysql,Sql,假设我有一张这样的桌子: +-------+-------+ | data | stuff | +-------+-------+ | 0.90 | a | | 0.95 | b | | 0.98 | c | | 0.99 | d | | 1.00 | e | | 1.01 | f | | 1.02 | g | +-------+-------+ 我需要在给定数字的上方和下方最接近“环绕”的行。例如,如果用户输入0.96,

假设我有一张这样的桌子:

+-------+-------+
| data  | stuff |
+-------+-------+
| 0.90  |   a   |
| 0.95  |   b   |
| 0.98  |   c   |
| 0.99  |   d   |
| 1.00  |   e   |
| 1.01  |   f   |
| 1.02  |   g   |
+-------+-------+
我需要在给定数字的上方和下方最接近“环绕”的行。例如,如果用户输入0.96,我需要这两行:

| 0.95  |   b   |
| 0.98  |   c   |
如果有精确匹配,我只需要那一行。例如,如果用户输入1我需要此行:

| 1.00  |   e   |
什么MySQL查询只返回这些特定行?

使用UNION DISTINCT和两个子查询:

(select * from `table` where data <= 0.96 order by data desc limit 1)
UNION DISTINCT
(select * from `table` where data >= 0.96 order by data asc limit 1) 

如何在sql server中编写相同的查询??