我正在建立一个网站,人们可以根据他们的体重和身高获得一些信息.如何构建一个查询,它会给我一行,其中两个特定值最接近用户输入的值?
我在stackoverflow上找到了这个,这非常有帮助.我试图完成类似的事情,只有2个值为1.
如果体重和身高同等重要,可以使用这个(线性)
select top 1 *
from tbl
order by ABS(weight-@weight) + ABS(height-@height)
Run Code Online (Sandbox Code Playgroud)
更好的选择可能是在秤上权衡差异,例如将 0.01m (1cm) 的equal重要高度视为 1kg。两边也都平方,这样 5 厘米和 5 公斤的偏差就会被视为比 10 厘米和 0 公斤“更接近”。
(假设所有输入均以公斤和米为单位)
select top 1 *
from tbl
order by ABS(weight-@weight)^2 + (ABS(height-@height)*100)^2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2012 次 |
| 最近记录: |