sql查询-拉取2行
可能重复: 对不起,我很难修改之前的问题。我想 我的问题可能不正确……这又是一个新问题。 我正在选择需要抓取2行的位置。 我的值范围为13000.00000。我需要抓住第2行和第3行,因为 介于10000分钟范围和15000分钟范围之间 这句话只引申到第二行sql查询-拉取2行,sql,Sql,可能重复: 对不起,我很难修改之前的问题。我想 我的问题可能不正确……这又是一个新问题。 我正在选择需要抓取2行的位置。 我的值范围为13000.00000。我需要抓住第2行和第3行,因为 介于10000分钟范围和15000分钟范围之间 这句话只引申到第二行 select * from TABLE1 where 13000 ?? range; TABLE1 Row range return_value 1 0.00000 1.15 2 1
select *
from TABLE1
where 13000 ?? range;
TABLE1
Row range return_value
1 0.00000 1.15
2 10000.00000 1.25
3 15000.00000 1.35
4 20000.00000 1.14
谢谢 似乎您需要同时执行以下两项操作 返回与最大值小于输入范围的范围对应的行 返回与大于输入范围的最小值范围相对应的行
SELECT *
FROM TABLE1
WHERE Range = (select MAX(range) from table1 subt1 where subt1.range < 13000)
OR Range = (select MIN(range) from table1 subt1 where subt1.range > 13000)
这里有两个查询:
SELECT TOP 1 * from TABLE1 where range < 13000 ORDER BY range desc;
SELECT TOP 1 * from TABLE1 where range > 13000 ORDER BY range asc;
您是否试图找到与另一个值最接近的两个值,即接近13000的两行?或者,您正在尝试查找10000到15000之间的任意两行?15000值上的标签是否应为最大范围。如果是这样的话,那么我不清楚13000这个数字 如果是后者,那么这将起作用
select top 2 * from TABLE1 where range between 10000 and 15000
这将返回两行,但不区分哪一行在该范围内。如果你需要更具体一些,纳尼安的答案是一个更好的解决方案
或者,您可以使用Paul的语句,将两个select语句组合成一个union语句:
SELECT TOP 1 * from TABLE1 where range < 13000 ORDER BY range desc
Union
SELECT TOP 1 * from TABLE1 where range > 13000 ORDER BY range asc;
从表1中选择*范围<16000或范围>90000对不起,我还不明白。也许您想看看SQL中的“where something”位?
SELECT TOP 1 * from TABLE1 where range < 13000 ORDER BY range desc
Union
SELECT TOP 1 * from TABLE1 where range > 13000 ORDER BY range asc;