表结构:
上限值 代理费率
0 0.009
50 0.008
100 0.007
200 0.005
比如我有这样一个表,我输入一个值为150,150是大于100,并且小于200,它所对应的代理费率为0。007;
比如我输入80,查出的代理费率应该为0.008,这问这个SQL语句该怎么写?
感谢各位帮忙!!!!
上限值 代理费率
0 0.009
50 0.008
100 0.007
200 0.005
比如我有这样一个表,我输入一个值为150,150是大于100,并且小于200,它所对应的代理费率为0。007;
比如我输入80,查出的代理费率应该为0.008,这问这个SQL语句该怎么写?
感谢各位帮忙!!!!
from tb
where 上限值<=@参数
order by 上限值 desc--不过,按你的表述,字段应该叫下限值才对。呵呵。
那么的在加个等号SELECT TOP 1 [代理费率] FROM #tb WHERE [上限值]<=100 ORDER BY [上限值] DESC
;WITH test ( 上限值, 代理费率 )
AS ( SELECT 0 ,
0.009
UNION ALL
SELECT 50 ,
0.008
UNION ALL
SELECT 100 ,
0.007
UNION ALL
SELECT 200 ,
0.005
)
SELECT TOP 1 *
FROM test
WHERE 上限值<=@a
ORDER BY 上限值 DESC
/*
上限值 代理费率
----------- ---------------------------------------
50 0.008
(1 行受影响)
*/
set @IN=80
select top 1 代理费率 from tb where 上限值<=@IN order by 上限值 desc