不明白你的表的值为什么这么填写。你的吨位精确到小数点后第几位? 如果只有一位那么这样就可以。 select * 价格 from T1 where 吨位>2.5 取出来的第一行就是你要的值。如不只一位,你的表没必要这么写。要不吨位是2.001咋整。。
select CASE WHEN 吨位=2.0 THEN 500 CASE WHEN 吨位=2.01 THEN 600 CASE WHEN 吨位=3.0 THEN 600 CASE WHEN 吨位=3.01 THEN 800 CASE WHEN 吨位=4.0 THEN 800 CASE WHEN 吨位=4.01 THEN 1000 ELSE 吨位='' ENDfrom table
select top 1 价格 from T1 where 吨位<2.5 order by 吨位 desc
你这是不是一张价格表?应该需要你计算单价的函数。。如果是我我会把表做成这样 价格(主键) 吨位1 吨位2 500 2.0 600 2.01 3.0 800 3.01 4.0 1000 4.01select 价格 from t1 where 吨位1<=2.5 and 吨位2>=2.5
select [价格] from T1 where [吨位]=ceiling(convert(float,@input吨位))
如果只有一位那么这样就可以。
select * 价格 from T1 where 吨位>2.5
取出来的第一行就是你要的值。如不只一位,你的表没必要这么写。要不吨位是2.001咋整。。
CASE WHEN 吨位=2.0 THEN 500
CASE WHEN 吨位=2.01 THEN 600
CASE WHEN 吨位=3.0 THEN 600
CASE WHEN 吨位=3.01 THEN 800
CASE WHEN 吨位=4.0 THEN 800
CASE WHEN 吨位=4.01 THEN 1000
ELSE 吨位='' ENDfrom table
select top 1 价格 from T1 where 吨位<2.5 order by 吨位 desc
价格(主键) 吨位1 吨位2
500 2.0
600 2.01 3.0
800 3.01 4.0
1000 4.01select 价格 from t1 where 吨位1<=2.5 and 吨位2>=2.5
where [吨位]=ceiling(convert(float,@input吨位))