问个C#下一个数字跟表里数字比较的问题

fwqkey 2012-04-13 02:05:24
比如,我有一个int类型数字a,想遍历表B中某列全是数字的字段(字段名称比如为data),

要从表中这个字段中取出与数字a最相近的数字。

请问这个方法怎么写?

马上结贴,不含糊
...全文
167 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwqkey 2012-04-13
  • 打赏
  • 举报
回复
嘿嘿我是写linq[Quote=引用 15 楼 的回复:]

不 一定取第一个 可以多取些 可能会有多个记录的现象
[/Quote]
st200316 2012-04-13
  • 打赏
  • 举报
回复
不 一定取第一个 可以多取些 可能会有多个记录的现象
st200316 2012-04-13
  • 打赏
  • 举报
回复
直接就用SQL语句好了
st200316 2012-04-13
  • 打赏
  • 举报
回复
select top 1 aa from (SELECT abs([id]-10) as aa

FROM [ERP_moni].[dbo].[TMSWEBlog] )as tab order by tab.aa
fwqkey 2012-04-13
  • 打赏
  • 举报
回复
我再算算看
fwqkey 2012-04-13
  • 打赏
  • 举报
回复
都有道理啊。[Quote=引用 10 楼 的回复:]

引用 9 楼 的回复:
说真的,从各方面来看我都不推荐你的做法,先排序筛选.
肯定不如直接循环比对来快,排序算法也就是 O(log2n),循环只是 O(n)

当然,有一种情况除外,那就是结果的传输.
就是说全查询回来结果集太大.那么用排序的方法可以精简一些结果集,再配合Top使用的话那数据传输的代价就相当小了.
[/Quote]
cheng2005 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
说真的,从各方面来看我都不推荐你的做法,先排序筛选.
肯定不如直接循环比对来快,排序算法也就是 O(log2n),循环只是 O(n)
[/Quote]
当然,有一种情况除外,那就是结果的传输.
就是说全查询回来结果集太大.那么用排序的方法可以精简一些结果集,再配合Top使用的话那数据传输的代价就相当小了.
cheng2005 2012-04-13
  • 打赏
  • 举报
回复
说真的,从各方面来看我都不推荐你的做法,先排序筛选.
肯定不如直接循环比对来快,排序算法也就是 O(log2n),循环只是 O(n)
bdmh 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
别误人子弟啊
你想找10的时候,你让9情何以堪.
[/Quote]
你说的对,那你就两个方向分别选出,比较这两个数
或者取绝对值最接近的
cheng2005 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
select id from xxx where id >= i order by id

id为字段,i为你的数,这样选出来的第一个就是与你最接近的
[/Quote]
别误人子弟啊
你想找10的时候,你让9情何以堪.
bdmh 2012-04-13
  • 打赏
  • 举报
回复
select id from xxx where id >= i order by id

id为字段,i为你的数,这样选出来的第一个就是与你最接近的
cheng2005 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
有没什么简单的方法去比较

引用 3 楼 的回复:

那就全取出来按照你的规则找一个不就完了.
[/Quote]
多简单的方法你不都是需要遍历一次,你不遍历怎么知道你找到的是最接近的.
当然,你可以在找到一个相等的数(你认为是最最最接近的)之后停止遍历.
fwqkey 2012-04-13
  • 打赏
  • 举报
回复
有没什么简单的方法去比较[Quote=引用 3 楼 的回复:]

那就全取出来按照你的规则找一个不就完了.
[/Quote]
cheng2005 2012-04-13
  • 打赏
  • 举报
回复
那就全取出来按照你的规则找一个不就完了.
fwqkey 2012-04-13
  • 打赏
  • 举报
回复
就是表中数字跟我提供的数字相差最小的啊。[Quote=引用 1 楼 的回复:]

先问问自己,相近的规则是什么,如果自己能回答,再来问
[/Quote]
bdmh 2012-04-13
  • 打赏
  • 举报
回复
先问问自己,相近的规则是什么,如果自己能回答,再来问

111,126

社区成员

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

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

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