sql 区间值查询

skyctr 2011-03-22 04:16:25

表一(T1)

吨位 价格
2.0 500
2.01 600
3.0 600
3.01 800
4.0 800
4.01 1000

要求输入一个吨位变量值,如(2.5)查询出 对应的价格 :600

如何写这个sql 语句?或函数、过程?

...全文
410 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
马老虎 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cyq041 的回复:]

select 价格 from t1 where 吨位1<=2.5 and 吨位2>=2.5
[/Quote]
这Where条件只能 等于2.5的时候满足吧
skyctr 2011-03-22
  • 打赏
  • 举报
回复
谢谢 各位 已经解决
XX1234567890AA 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ailiuyao 的回复:]
先用数学函数把吨位转换一下,如2.5吨转换后就是3吨,然后根据吨位3查询表T1就行了。
[/Quote]


select [价格] from T1
where [吨位]=ceiling(convert(float,@input吨位))
cyq041 2011-03-22
  • 打赏
  • 举报
回复
你这是不是一张价格表?应该需要你计算单价的函数。。如果是我我会把表做成这样
价格(主键) 吨位1 吨位2
500 2.0
600 2.01 3.0
800 3.01 4.0
1000 4.01

select 价格 from t1 where 吨位1<=2.5 and 吨位2>=2.5

马老虎 2011-03-22
  • 打赏
  • 举报
回复

select top 1 价格 from T1 where 吨位<2.5 order by 吨位 desc

潘少博 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 j45kp 的回复:]
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 吨位='' END

fro……
[/Quote]
如果这个表吨位到1w你也一个一个写?
j45kp 2011-03-22
  • 打赏
  • 举报
回复
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 吨位='' END

from table

潘少博 2011-03-22
  • 打赏
  • 举报
回复
不明白你的表的值为什么这么填写。你的吨位精确到小数点后第几位?
如果只有一位那么这样就可以。
select * 价格 from T1 where 吨位>2.5
取出来的第一行就是你要的值。

如不只一位,你的表没必要这么写。要不吨位是2.001咋整。。
zzmjhy520 2011-03-22
  • 打赏
  • 举报
回复
转到SQL版吧
边城的刀声 2011-03-22
  • 打赏
  • 举报
回复
select 价格 from T1 where 吨位=2.01
ailiuyao 2011-03-22
  • 打赏
  • 举报
回复
先用数学函数把吨位转换一下,如2.5吨转换后就是3吨,然后根据吨位3查询表T1就行了。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧