SQL根据两行中column1中的值选择column2

SQL根据两行中column1中的值选择column2,sql,sql-server,Sql,Sql Server,我有一张这样的桌子: To_day | percent ----------------------- 5 | 1.5 8 | 2 2147483647 | 3 我想写一个选择,花一天的时间,在to_day列中找到合适的范围,并返回相关的百分比。例如: @day = 3 -------> percent = 1.5 @day = 5 -------> percent = 1.5 @day = 7

我有一张这样的桌子:

To_day     |   percent
-----------------------
  5        |     1.5

  8        |      2

2147483647 |      3 
我想写一个选择,花一天的时间,在to_day列中找到合适的范围,并返回相关的百分比。例如:

@day = 3 -------> percent = 1.5

@day = 5 -------> percent = 1.5

@day = 7 -------> percent = 2

@day = 15 ------> percent = 3

看看这是不是你想要的

DECLARE @t1 TABLE (to_day INT, [percent] FLOAT)

INSERT INTO @t1 VALUES (5,1.5);
INSERT INTO @t1 VALUES (8,2);
INSERT INTO @t1 VALUES (2147483647,3);

DECLARE @day INT = 15;

SELECT TOP 1 [percent]
FROM @t1
WHERE (to_day - @day) >= 0
ORDER BY (to_day - @day) ASC
试试这个:

SELECT TOP 1 [percent]
FROM mytable
WHERE To_day >= @d
ORDER BY to_day 

成功了。但是这个where表达式:where To_day>=@d。谢谢大家!@莫森很高兴我能帮忙。如果这有助于您解决问题,请将此项或任何其他项标记为已接受。