SQL 语句不会写,新手!

乡野闲人 2015-08-01 04:14:02
我有一张表 table shoes
对应有field三个
feet(cm) size stye 其中一段内容如下
10 A sports
11 B sports
12 C
13 D


我要做个查询就已知是我的脚长_feet 可以帮我查到 我应该穿多少码的鞋子 我那些款式。
我的思路是 我用我这个已知的_feet 和table里的值对比 取MIN(ABS(_feet-feet))
就是去相减绝对值最小的那个书 然后显示出满足条件的一天或者几天数据(因为现实中脚长和table里的已有数据不可能完全match,所以我做了一份绝对值最小的。)

因为刚刚接触这块 我不知道对应的语句怎么写 希望哪位能人贤士帮一下忙。谢谢!
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
许晨旭 2015-08-01
  • 打赏
  • 举报
回复
create table  #shoes
(
	feet int,
	size char(5)
)
insert into #shoes
select 10,'A' union all
select 11,'B' union all
select 12,'C' union all
select 13,'D'

TRUNCATE TABLE #shoes

declare @feet NUMERIC(4,2)
set @feet=12.8

select TOP 1
	*
from #shoes
order by ABS(@feet-feet)
sckdcs 2015-08-01
  • 打赏
  • 举报
回复
select MIN(ABS(_feet-feet)) as newfeet,size,stye from shoes 用游标吧,能实现上面这个功能非常简单
sckdcs 2015-08-01
  • 打赏
  • 举报
回复
select newfeet= case when abs( (max(feet)-_feet))>abs( (min(feet)-_feet)) then abs( (max(feet)-_feet)) else abs( (min(feet)-_feet)) end, size,stye from shoes

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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